Форум программистов, компьютерный форум, киберфорум
Наши страницы
Basic
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.68/40: Рейтинг темы: голосов - 40, средняя оценка - 4.68
Evg
Эксперт CАвтор FAQ
20297 / 7824 / 601
Регистрация: 30.03.2009
Сообщений: 21,852
Записей в блоге: 30
1

Вопрос про разные реализации бэйсиков

14.08.2009, 14:54. Просмотров 7537. Ответов 49
Метки нет (Все метки)

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

А потому вопрос, чем прициапиально отличаются разные реализации бэйсика и какой из них самый простой. На текущий момент решили работать без поддержки функций, а потому хотелось бы понять, насколько реально работать на бейсике при таком ограничении (или может такие реализации есть и на них работают).
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2009, 14:54
Ответы с готовыми решениями:

Гиперссылки в ComboBox: вопрос реализации
привет всем) мне нужно из вылазиющих строчек в ComboBox сделать Гиперссылки на другую форму....

Вопрос по реализации блок-схем в VBA
Помогите пожалуйста реализовать блок -схему на VBA

Разные реализации одного интерфейса
Есть в javax.swing два класса, которые одновременно очень похожи, но в то же время и сильно...

моя первая плата, хедеры - вопрос про eagle или про пайку
До сих пор я паял платы на однослойных платах для прототипирования - примерно вот таких...

Вопрос про обратную связь, и про схемотехнику полумоста
Добрый день) Я сейчас делаю схему от уважаемого rost c форума http://www.psb-kots.ru/forum/ , и...

49
БурундукЪ
9562 / 2577 / 83
Регистрация: 17.02.2009
Сообщений: 10,364
14.08.2009, 15:07 2
Цитата Сообщение от Evg Посмотреть сообщение
чем прициапиально отличаются разные реализации бэйсика
здесь http://ru.wikipedia.org/wiki/BASIC
Цитата Сообщение от Evg Посмотреть сообщение
какой из них самый простой
знаю всего 2 разновидности QBasic и Visual Basic. конечно проще QBasic
Цитата Сообщение от Evg Посмотреть сообщение
решили работать без поддержки функций
пользовательских или встроенных?
если пользовательских, то в QBasic можно без них и обойтись
Visual Basic же объектно-ориентированный язык, поэтому в нем по умолчанию используются функции и процедуры
1
Evg
Эксперт CАвтор FAQ
20297 / 7824 / 601
Регистрация: 30.03.2009
Сообщений: 21,852
Записей в блоге: 30
14.08.2009, 15:18  [ТС] 3
Цитата Сообщение от БурундукЪ Посмотреть сообщение
Ссылка пригодится, но хотелось бы понять "на пальцах". Т.е. я могу щас почитать описание всяких разновдидностей, посмотреть все тонкости и потом уже понять, чем они отличаются. А тот, кто в этом уже понимает, может коротко рассказать основные отличия, не дваваясь в детали (учитывая, что мы пишем интерпретатор). Если возможно, хотелось бы услышать ответ на этот вопрос

Цитата Сообщение от БурундукЪ Посмотреть сообщение
знаю всего 2 разновидности QBasic и Visual Basic. конечно проще QBasic
Ну Visual Basic понятное дело пролетает, ибо новичку такое не светит реализовать. Я ещё слышал про Turbo-Basic. Варианты, которые были на других платформах (типа yamaha) сейчас особенно не интересуют, потому как тестовой базы для них мы не найдём. А на форуме я так посмотрел, исходников под QBasic много. Где-то я видел с использованием функций, но мало. Но при беглом просмотре нигде не видел использование GOSUB - это в QBasic'е есть?

И ещё вопрос - понятие процедуры оно такое же, как на пискале и си? Т.е. есть некая область, внутри которой живут локльные переменные и параметры, всё это дело может вызываться рекурсивно. Каких-то своих особенностей нет?

Цитата Сообщение от БурундукЪ Посмотреть сообщение
пользовательских или встроенных?
Пользовательские. Т.е. проблема с функцией не в том, чтобы работать с точкой вызова, а в том, чтобы работать с телом функции - работа с локальными объектами и возможность рекурсии (данный момент для интерпретатора тяжеловат получается)
0
БурундукЪ
9562 / 2577 / 83
Регистрация: 17.02.2009
Сообщений: 10,364
14.08.2009, 15:28 4
Цитата Сообщение от Evg Посмотреть сообщение
Но при беглом просмотре нигде не видел использование GOSUB - это в QBasic'е есть?
пример:
PureBasic
1
2
3
4
5
6
7
10 PRINT "1"
20 GOSUB 100
30 PRINT "2"
40 END
 
100 PRINT "3"
200 RETURN
Цитата Сообщение от Evg Посмотреть сообщение
А тот, кто в этом уже понимает, может коротко рассказать основные отличия, не дваваясь в детали (учитывая, что мы пишем интерпретатор). Если возможно, хотелось бы услышать ответ на этот вопрос
Цитата Сообщение от Evg Посмотреть сообщение
Ну Visual Basic понятное дело пролетает
итого остается QBasic

Цитата Сообщение от Evg Посмотреть сообщение
И ещё вопрос - понятие процедуры оно такое же, как на пискале и си? Т.е. есть некая область, внутри которой живут локльные переменные и параметры, всё это дело может вызываться рекурсивно.
да. никаких особенностей.
1
14.08.2009, 15:28
Evg
Эксперт CАвтор FAQ
20297 / 7824 / 601
Регистрация: 30.03.2009
Сообщений: 21,852
Записей в блоге: 30
14.08.2009, 16:09  [ТС] 5
Теперь вопрос по условным выражениям.

На Си код строится так, что условное выражение вычисляется до тех пор, пока не станет известен результат. Т.е. в условии "if (func1()==5 && func2()==10)" если func1 вернуло значение, отличное от 5, то func2 вызываться не будет, потому как уже известно. что результат условия есть false. В бэйсике то же самое?
0
БурундукЪ
9562 / 2577 / 83
Регистрация: 17.02.2009
Сообщений: 10,364
14.08.2009, 16:41 6
Цитата Сообщение от Evg Посмотреть сообщение
В бэйсике то же самое?
неа. в бейсике проверяются все складуемые условия.
0
odip
Эксперт С++
7169 / 3227 / 77
Регистрация: 17.06.2009
Сообщений: 14,166
14.08.2009, 17:09 7
Т.е. есть некая область, внутри которой живут локльные переменные и параметры, всё это дело может вызываться рекурсивно.
Нету там никаких локальных переменных.

Добавлено через 31 секунду
Хотя смотря какой Basic наверное

Добавлено через 1 минуту 59 секунд
Рекурсивно вызываться может.
0
БурундукЪ
9562 / 2577 / 83
Регистрация: 17.02.2009
Сообщений: 10,364
14.08.2009, 17:15 8
QBASIC — диалект языка программирования Бейсик (BASIC), разработанный компанией Microsoft, а также среда разработки, позволяющая писать, запускать и отлаживать программы на этом языке.

QBASIC удобен для выполнения несложных вычислений и для прямой работы с портами. Сегодня этот язык используется для обучения программированию

Qbasic является интерпретатором, т.е. программы, написанные на этом языке могут выполняться только внутри его интегрированной среды.

QBASIC, в отличии от более ранних версий языка Basic, поддерживает современные средства модульного программирования. Это свойства поднимает его до современных языков программирования. К достоинствам этого языка также следует отнести то, что:
содержит хороший экранный редактор
не ограничивает длину программы
отменяет необходимость нумерации строк
предлагает операторы, позволяющие организовывать структуры внутри программ.
поддерживает программные процедуры, вызываемые из основной программы.
позволяет использовать локальные переменные.
0
Evg
Эксперт CАвтор FAQ
20297 / 7824 / 601
Регистрация: 30.03.2009
Сообщений: 21,852
Записей в блоге: 30
14.08.2009, 20:52  [ТС] 9
Значит будем сотреть на qbasic, пока без процедур
Кстати, из этой статьи (правда она больше на словесный понос похожа, чем на статью) мне показалось, что там всё-таки компилятор

А qbasic сейчас бесплатный?

Добавлено через 2 минуты 0 секунд
Вот типа того

Make EXE File... - позволяет сделать из *.bas файла настоящую EXE-версию вашего кода, чтобы ее можно было запускать на машине без Бейсика
1
PB
Просто прогер
1283 / 1070 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
14.08.2009, 21:10 10
Цитата Сообщение от Evg Посмотреть сообщение
Make EXE File... - позволяет сделать из *.bas файла настоящую EXE-версию вашего кода, чтобы ее можно было запускать на машине без Бейсика

Не по теме:

Это DOS приложение --> фтопку!

0
Evg
Эксперт CАвтор FAQ
20297 / 7824 / 601
Регистрация: 30.03.2009
Сообщений: 21,852
Записей в блоге: 30
14.08.2009, 21:11  [ТС] 11
Я так понимаю, что признаком кона оператора ялвяется прекод строки. Т.е. один оператор нельзя размазывать на несколько строк?

Можно писать вот так (т.е. набор операторов через двоеточие это некий аналог лексического блока на си и паскале?)?
IF условие THEN statemen1 : statement 2 ELSE statement3 : statement 4

IF размазывать на несколько строк можно?
0
Evg
Эксперт CАвтор FAQ
20297 / 7824 / 601
Регистрация: 30.03.2009
Сообщений: 21,852
Записей в блоге: 30
19.08.2009, 23:20  [ТС] 12
А есть где-нибудь краткий справочник по Q-Basic? Интересует синтаксис и краткое описание базовых конструкций и концепций. Или где его можно скачать (если он сейчас бесплатный)

Ну и ряд вопросов
  • Язык чувствиетелен к регистры букв? Т.е. "PRINT A" и "print a" это одно и то же?
  • Видел исходники, где переменные никак не объявляются, а просто используются. В этом случае есть понятие типа переменной или её тип считается автоматически по записанному в неё значению?
  • Есть приортитеты у логических операций (AND, OR, NOT) или просто слева направо?
  • Насколько я понял, метка бывает двух видов: просто цифра (как номер строки из старых реализаций) либо идентификатор с последующим двоеточием. Так?
  • Списко операций через двоеточие - это некий аналог фигурных скобок на Си? Т.е. конструкция "IF a==0 THEN b=1:c=2 ELSE d=3:e=4" трактуется как "IF a==0 THEN { b=1; c=2 } ELSE { d=3; e=4 }"? А так же можно просто записать НЕ внутри IF'а "a=1:b=2"?
  • Перенос строки является признаком конца оператора, при этом оператор нельзя размазывать на две строки?
0
odip
Эксперт С++
7169 / 3227 / 77
Регистрация: 17.06.2009
Сообщений: 14,166
19.08.2009, 23:31 13
Или где его можно скачать
QBASIC входит в состав MS-DOS.

Добавлено через 2 минуты 40 секунд
2Evg: Я понимаю что у людей которые что-то пишут напрочь отключается мозг
поэтому выложу тебе сюда:
Учебники по QBasic
http://quitbasic.narod.ru/qbhelp.html
http://en.wikibooks.org/wiki/QBasic

Добавлено через 2 минуты 9 секунд
И вообще завязывай писать Basic - за тебя уже его написали
http://ru.wikipedia.org/wiki/Rapid-Q_basic
Rapid-Q является BASIC языком программирования. Основные конструкции языка поддерживаются многими платформами — Win32, GNU/Linux, Unix (Solaris и HP-UX поддерживаются).
1
Evg
Эксперт CАвтор FAQ
20297 / 7824 / 601
Регистрация: 30.03.2009
Сообщений: 21,852
Записей в блоге: 30
19.08.2009, 23:41  [ТС] 14
odip, попробую пояснить развёрнуто. Мне не нужны учебники, в которых что-то понаписано, но ответов на некоторые вопросы скорее всего не найду. Такое скорее решается методом тыка, либо кто-то сможет дать конкретный ответ на конкретный вопрос. ТО, что он входит в состав MS-DOS означает, что под виндой без бубна он не запустится? И есть отдельная поставка только qbasic'а?

То, что за меня написали бэйсик, это конечно хорошо. ТОлько за меня написали и программы "hello world" на всех языках программирования. Написали браузеры, графические редакторы и т.п. Т.е. по такой логике кроме искусственного интеллекта писать больше и нечего. К тому же пишу не я, а #pragma. Человек нашёл для себя интересное задание в качестве живой программы для тренировки, а я ему помогаю, чем могу
0
skvor
640KB мне хватило на всё.
119 / 50 / 3
Регистрация: 07.06.2009
Сообщений: 442
20.08.2009, 00:15 15
1. А захрена?
2. QBasic был в MS-DOS 6 (уже сказали)
3. QuikcBASIC не требует регистраций, так что работать будет
4. Из разновидностей и различий знал только отличие у Turbo и Quick передачи параметров в функцию - с массивами как-то различается. Но это для Вас вроде не актуально.
5. Самый простой BASIC, думаю был у MK-85

Посмотрите на Вики, там есть упоминания о стандартах, если сможете найти наверное будет оптимально для вас.

Добавлено через 8 минут 4 секунды
+1
Цитата Сообщение от Evg Посмотреть сообщение
odip, под виндой без бубна он не запустится? И есть отдельная поставка только qbasic'а?
QBasic - в DOS-е был в виде отдельного файла, последний раз запускал в XP без проблем.
Редактор аналогичен EDIT (есть вроде в XP).
Цитата Сообщение от Evg Посмотреть сообщение
odip, Т.е. по такой логике кроме искусственного интеллекта писать больше и нечего.
Опоздали, уже есть специалист по ИИ
Как, мне разобраться с переписыванием программы
Можно ли сделать из персонального компьютера автоматического робота?
Как произвести запись в системный реестр Windows
1
Evg
Эксперт CАвтор FAQ
20297 / 7824 / 601
Регистрация: 30.03.2009
Сообщений: 21,852
Записей в блоге: 30
20.08.2009, 09:20  [ТС] 16
В конечном итоге. Кто-нибудь может специально для идиотов объяснить, куда нажать. Под виндой start->run->"написать qbasic" или чего?
0
Goodwin98
2526 / 822 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
20.08.2009, 10:57 17
Цитата Сообщение от Evg Посмотреть сообщение
Под виндой start->run->"написать qbasic" или чего?
Вообще так, только сначала нужно скачать отделно ms-dos, потому что qbasic'а в винде по умолчанию нет.
0
Evg
Эксперт CАвтор FAQ
20297 / 7824 / 601
Регистрация: 30.03.2009
Сообщений: 21,852
Записей в блоге: 30
20.08.2009, 11:07  [ТС] 18
Цитата Сообщение от Goodwin98 Посмотреть сообщение
Вообще так, только сначала нужно скачать отделно ms-dos, потому что qbasic'а в винде по умолчанию нет.
Куда скачать и как поставить? Потому я и попросил "объяснить для идиотов"
0
Goodwin98
2526 / 822 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
20.08.2009, 11:14 19
Просто скачать. Можно даже никуда специально не копировать, просто распаковать в любую папку и запускать оттуда сей файлик (qbasic.exe). Можно распаковать в папку \windows\command\ (если я не путаю там лежит все, что осталось от доса) и запускать через start->run->"написать qbasic".
0
Evg
Эксперт CАвтор FAQ
20297 / 7824 / 601
Регистрация: 30.03.2009
Сообщений: 21,852
Записей в блоге: 30
20.08.2009, 11:54  [ТС] 20
Ладно, домой приду - попробую
0
20.08.2009, 11:54
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2009, 11:54

Интересуют разные реализации сервер-клиент
Привет. Занялся изучениям простенького клиент-сервера. Изучил самый простой на мой взгляд способ...

вопрос про Sape, про поиск площадок
Делаю поиск площалок. В каждом пункте результатов поиска есть кнопки BL и GBL. Что они значат и...

вопрос по реализации на C++
Условие: собственно сам вопрос: каким образом записать информацию о двух сотрудниках в одной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru