2008-10-28 3 views
6

Я начал программирование в Basic на ZX81, затем BASICA, GW-BASIC и QBasic. Я перешел на C (Ah, Turbo C 3.1, я почти не знал вас ...)С Lua и Python встраивается, есть ли место для Basic?

Когда я начал работу в микроконтроллерах, я вернулся с помощью BASIC Stamp от Parallax. Тем не менее, BASIC является/был потрясающим, потому что это было так легко понять и так сложно сделать ошибку. Я перешел на сборку и C в конце концов, потому что мне нужна была дополнительная мощность (скорость, емкость, ресурсы и т. Д.), Но я знаю, что если бы бар был намного выше, многие люди никогда не попали бы в программирование микроконтроллеров.

Я продолжаю получать зуд, чтобы создать собственный встроенный интерпретатор BASIC, но мне интересно, есть ли необходимость в BASIC, когда Lua и Python легко встраиваются и так же доступны, как и BASIC.

  • Что, если таковые имеются, являются преимуществами, которые имеет BASIC для других языков?
  • Почему все еще вокруг?
  • Если я решаю сделать плату микроконтроллера общего назначения с интерпретатором, есть ли причина сделать версию BASIC?

Множество других языков считается мертвым, но BASIC просто держится.

ответ

6

В качестве архитектуры, основная претензия к Известность BASIC заключается в том, что вы можете сделать интерпретаторы BASIC очень маленькими - всего несколько килобайт. Во времена DG Nova это было победой, поскольку вы могли использовать такие системы, как Business BASIC, для создания многопользовательского приложения на машине с 64 КБ ОЗУ (или даже меньше).

BASIC (в частности, VB) является унаследованной системой и имеет большую существующую базу кода. Возможно, VB - это действительно язык (некоторые скажут тонкую оболочку над COM), которая имеет синтаксис типа BASIC. В наши дни я не вижу оснований держать язык в стороне от знакомства с ним и поддерживать существующую базу кода. Я, конечно, не будет выступать за новую разработку в нем (обратите внимание, что VB.Net это на самом деле не BASIC, а просто имеет VB-подобный синтаксис. Система типов не нарушается в том, что VB был.)

Что является отсутствует в вычислительном мире релевантный язык, который легко учиться и возиться с ним и имеет разницу в разработке приложений. Я вырос во времена 8-битных машин, и входной барьер для программирования на этих системах был очень низким. Архитектура машин была очень простой, и вы могли научиться программировать и писать более или менее релевантные приложения на этих машинах очень легко.

Современные архитектуры намного сложнее и имеют больший горб, чтобы учиться. Вы можете видеть, как люди понимают, как дети не могут научиться программировать так же легко, как они могли бы вернуться в дни BASIC и 8-разрядных компьютеров, и я думаю, что этот аргумент имеет некоторые достоинства. Есть что-то вроде дыры, которая заставляет программировать только эту битку сложнее. Языки игрушек здесь не так много - для того, чтобы программирование было привлекательным, нужно быть способным создать что-то, что связано с языком, который вы изучаете.

Это приводит к проблеме языка, который легко для детей изучать, но по-прежнему позволяет им писать соответствующие программы (или даже игры), которые они могут действительно хотеть. Он также должен восприниматься как соответствующий.

Ближайшая вещь, о которой я могу думать, это Python. Это не единственный пример языка такого типа, но это тот, который имеет наибольшую долю разума - и (ИМО) в этой нише необходимо восприятие актуальности. Это также один из самых простых языков, чтобы узнать, что я испытал (из 30 или около того, что я использовал на протяжении многих лет).

0

Раньше я программировал на Бейсике в дни QBasic. QBASIC имел подпрограммы, функции, структуры (они назывались типами), и я думаю, что это так. Теперь это кажется ограниченным по сравнению со всеми функциями, которые Python имеет - OO, lambdas, метаклассы, генераторы, списки, просто для того, чтобы назвать несколько от верхней части головы. Но эта простота, я думаю, является сильной стороной Бейсика. Если вы посмотрите на простой встраиваемый язык, я бы поставил на то, что QBasic будет быстрее и понятнее. И процедурный langauge, вероятно, более чем достаточен для большинства приложений для внедрения/сценариев.

Я бы сказал, что самая важная причина, по которой BASIC по-прежнему находится, - это Visual Basic. Долгое время в 90-х годах VB был единственным способом писать графические интерфейсы, COM и DB-код для Windows, не попадая ни в одну из C++ Turing tarpits. [Возможно, Delphi тоже был хорошим вариантом, но, к сожалению, он никогда не стал таким популярным, как VB]. Я действительно думаю, что это из-за всего этого кода VB и VBA, который все еще используется и поддерживается, что BASIC все еще не мертв.

Это, я бы сказал, есть хорошее обоснование для написания интерпретатора BASIC (возможно, даже компилятора с использованием LLVM или чего-то подобного) для BASIC сегодня. Вы получите чистый, простой в использовании и быстрый язык, если вы реализуете нечто похожее на QBasic. Вам не придется решать какие-либо проблемы с дизайном языка, и лучшая часть - это люди, которые уже знают ваш язык.

1

Хороший вопрос ...

В принципе (так!), У меня нет ответа. Я бы сказал, что Lua очень легко учиться, возможно, так же просто, как Basic (который был одним из моих первых языков, я использовал диалекты на множестве 8-разрядных компьютеров ...), но более мощный (позволяющий OO или функциональные стили и даже их смешивание) и как-то более строгие (нет goto ...).

Я не очень хорошо знаю Python, но из того, что я прочитал, он такой же легкий, мощный и строгий, как Lua.

Кроме того, оба являются «стандартизированными» де-факто, т.е. нет диалектов (рядом с различными версиями), в отличие от Basic, который имеет много вариантов.

Также оба имеют тщательно изготовленную VM, эффективную, (в основном) бегущую. Если вы создаете собственный интерпретатор, вам следует либо взять существующую виртуальную машину, либо создать байт-код для нее из основного источника, либо сделать свой собственный. Конечно забавный материал, но отнимает много времени и склонны к ошибкам ...

Так что, я бы просто позволить Basic есть хороший выход на пенсию ... :-P

PS .: Почему он висит на? Возможно, Microsoft не чуждо этому ... (VB, VBA, VBScript ...)
Существует множество диалектов вокруг (RealBasic, DarkBasic и т. Д.) С некоторой аудиторией.

1

С риском звучать как два старожила на качающихся стульях, позвольте мне сердито сказать, что «Дети сегодня не ценят Бейсика», а затем парадоксально говорят: «Они не знают, насколько они хороши. "

BASICs наибольшая сила была всегда его понятность. Это было то, что люди могли получить. Это давно игнорировали ученые и разработчики языка.

Когда вы говорите о желании реализовать BASIC, я предполагаю, что вы не говорите о пронумерованном строках BASIC, а о структурированной форме. Проблема в том, что как только вы начнете переходить в структурированное программирование - функции, «почему не может Я просто GOTO это место?» И т. Д. - действительно становится неясно, какие преимущества, если таковые имеются, BASIC имеют, скажем, Python.

Кроме того, одна из причин, по которой BASIC была «настолько простой в обращении», заключалась в том, что в те дни библиотеки были не так важны, как сегодня. Библиотеки подразумевают структурированное, если не объектно-ориентированное программирование, так что снова вы находитесь в ситуации, когда более современный динамический язык сценариев «соответствует» реальности того, что сегодня делают люди.

Если реальный вопрос «ну, я хочу реализовать интерпретатор, и поэтому он сходит на возврат инвестиций», то это становится проблемой грамматики, которую на самом деле легко реализовать. Я бы предположил, что у BASIC на самом деле не так много преимуществ в этом отношении (если вы действительно не делаете do, возвращайтесь к номерам строк и очень ограниченной грамматике).

Одним словом, I не Думаете, вам следует инвестировать свои усилия в переводчика BASIC.

+0

Я бы хотел предложить, что синтаксический анализ на самом деле не является серьезной проблемой при написании компилятора/интерпретации в наши дни. Трудные части - это сложная семантика. Для Python нужны замыкания, генераторы, исправление обезьян - все очень круто, но королевская боль, чтобы попасть прямо на uController. – Pramod 2008-10-28 18:13:30

+0

Достаточно справедливо: если вопрос действительно «легко ли реализовать Python?» тогда ответ явно «Нет, не так много». Я задал вопрос: «Является ли БАЗОВЫЙ язык предпочтительным для Python-подобного языка для новичков?» – 2008-10-28 18:57:12

10

[Это может показаться более негативным, чем есть на самом деле. Я не говорю, что Basic - это корень всего зла, others have said that. Я говорю, что это наследие, которое мы можем позволить себе оставить.]

«потому что это было так легко понять и так трудно сделать ошибку» Это, конечно, спорно. У меня были некоторые плохие впечатления с совершенно непрозрачной базой. Профессиональный материал - коммерческие продукты - совершенно ужасный код. Пришлось отказаться и отказаться от работы.

«Что, если таковые имеются, являются преимуществами Basic по сравнению с другими языками?» Нет, действительно.

«Почему все еще вокруг?» Две причины: (1) Microsoft, (2) все ИТ-отделы, которые начали делать VB, и теперь имеют миллионы строк устаревшего кода VB.

«Множество других языков считается мертвым ...« Yep. Basic существует рядом с COBOL, PL/I и RPG как наследие, которое иногда имеет большую стоимость, чем стоимость. Но из-за того, что политика« больших, больших, не сломалась »не исправляет», там они сидеть, сосать ресурсы, которые могли бы легко заменить его чем-то меньшим, более простым и дешевым в обслуживании. Кроме того, он не «провалился» - это просто непропорционально дорого.

30-летняя COBOL - это ужасная ситуация для доработки Начиная с 2016 года мы будем смотреть на 30-летнюю MS Basic, которую мы просто не можем понять, не хотим жить без нее и не можем решить, как ее заменить.

"но базовый просто держится на « Кажется, что некоторые люди любят Basic. Другие видят в нем еще anot ее плохо разработанный язык; его преимущества рано встают на рынок и поддерживаются огромными поставщиками (IBM, изначально). Плохо-дизайн, ранний рынок лишь оставляет нам наследие, с которым мы будем страдать десятилетиями.

У меня все еще есть руководство по ремонту Дартмута 1965 года. Я не хочу хороших старых дней.

1

Ну, эти люди, кажется, думают, что не только основной до сих пор имеет место в мобильном пространстве, но и то, что они могут делать деньги от него:

http://www.nsbasic.com/symbian/

2

Почему бы не дать Jumentum попробовать и посмотреть, как он работает на вас?

http://jumentum.sourceforge.net/

это с открытым исходным кодом BASIC для micrcontrollers

Проект Elua также Lua для микроконтроллеров

http://elua.berlios.de/

2

BASIC сохраняется, особенно в реализации STAMP, потому что она ниже чем большинство других очень простых в освоении языков программирования. Для большинства встроенных BASIC-реализаций инструкции BASIC сопоставляются непосредственно с одиночными или группами машинных инструкций с очень небольшими накладными расходами. Те же самые программы, написанные на языках более высокого уровня, такие как Lua или Python, будут работать гораздо медленнее на тех же микроконтроллерах.

PS: БАЗОВЫЕ варианты, такие как PBASIC, имеют очень мало общего с, скажем, Visual BASIC, несмотря на сходство имен. Они расходятся по-разному.

1

Я тоже начал работать на ZX81. Но, как сказал Tony Hoare, программирование на BASIC похоже на попытку сделать длинное разделение с использованием римских цифр.

Много других языков считается мертвым, но основная просто держит висит на.

К сожалению, да. Я обвиняю Билла Гейтса в этом ... Бэйсик был на носилках со священником, который произнес последние обряды для этого, а затем РС вернул его, как оспа.

 Смежные вопросы

  • Нет связанных вопросов^_^