Есть ли место для Basic с возможностью встраивания Lua и Python?

Я начал программировать на Basic на ZX81, затем БАЗИКА, GW-BASIC и QBasic. Я перешел на C (Ах, Turbo C 3.1, я почти не знал вас ...)

Когда я начал заниматься микроконтроллерами, я регрессировал с БАЗОВЫЙ штамп от Parallax. Однако BASIC - это круто, потому что его так легко понять и так сложно сделать ошибку. В конце концов я перешел к сборке и C, потому что мне требовалась дополнительная мощность (скорость, емкость, ресурсы и т. д.), Но я знаю, что если бы планка была намного выше, многие люди никогда бы не занялись программированием микроконтроллеров.

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

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

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

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
6
0
1 752
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

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

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

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

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

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

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

Кроме того, оба де-факто "стандартизированы", т.е. нет диалектов (кроме различных версий), в отличие от Basic, который имеет множество вариантов.

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

Так что я бы просто позволил Бэзику хорошо выйти на пенсию ... :-P

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

Рискуя показаться двумя старожилами на креслах-качалках, позвольте мне сварливо сказать: «Сегодняшние дети не ценят BASIC», а затем парадоксальным образом сказать: «Они не знают, насколько они хороши».

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

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

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

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

Короче говоря, я не считаю, что вам следует вложить свои усилия в интерпретатор BASIC.

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

Pramod 28.10.2008 21:13

Достаточно справедливо: если действительно вопрос: «Легко ли реализовать Python?» тогда ответ будет ясным: «Нет, не очень». Я задался вопросом: «Является ли язык, подобный BASIC, предпочтительнее, чем язык, подобный Python, для новичков?»

Larry OBrien 28.10.2008 21:57

[Это может показаться более негативным, чем есть на самом деле. Я не говорю, что базовый уровень - это корень всех зол, другие сказали, что. Я говорю, что это наследие, которое мы можем себе позволить оставить.]

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

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

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

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

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

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

У меня до сих пор есть руководство Dartmouth Basic, изданное в 1965 году. Я не тоскую по старым добрым временам.

Браво - хороший ответ. Однако, учитывая скорость ИТ, такой упорный консерватизм в этой области вызывает беспокойство ...

new123456 10.06.2011 02:27

Что ж, эти люди, похоже, думают, что в мобильном пространстве все еще есть место не только базовым, но и что они могут на этом заработать:

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

Ответ принят как подходящий

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

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

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

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

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

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

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

http://jumentum.sourceforge.net/

это Бейсик с открытым исходным кодом для микроконтроллеров

Проект elua также является lua для микроконтроллеров.

http://elua.berlios.de/

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

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

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

Plenty of other languages are considered dead, but basic just keeps hanging on.

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

Другие вопросы по теме