Спецификация языка QBasic

Друг предложил мне написать компилятор QBasic на QBasic.

Где я могу найти языковую спецификацию для последней версии языка?


person Simon Johnson    schedule 18.12.2010    source источник
comment
Вы имеете в виду QBasic 1.1 или QuickBasic 4.5?   -  person Cody Gray    schedule 18.12.2010
comment
В вызове указывается интерпретатор QBasic, поставляемый с более ранними версиями Windows. Компилятор должен работать на этой версии QBasic и должен уметь компилировать сам себя. Я предполагаю, что это будет означать QBasic 1.1.   -  person Simon Johnson    schedule 18.12.2010
comment
Вам предстоит довольно сложная задача, учитывая, что QBasic является интерпретируемым языком и на самом деле не может компилировать код.   -  person Cody Gray    schedule 18.12.2010
comment
Немного предыстории — разговор возник из-за того, что мы сетовали на то, что у QBasic нет бинарного компилятора, который мы могли бы использовать в школе. Весь наш код нужно было интерпретировать с помощью QBasic, в то время я хотел иметь возможность написать компилятор на QBasic, чтобы я мог создавать двоичные файлы. Эта задача является воплощением детской мечты — сделать компилятор для преобразования Qbasic из интерпретируемого языка в компилируемый.   -  person Simon Johnson    schedule 18.12.2010
comment
Забавно то, что QBasic, поставляемый с MS-DOS, представляет собой просто урезанную версию QuickBASIC (IIRC 4.0, возможно, 4.5), в которой удалены компилятор, бинарные инструменты и поддержка quicklib.   -  person Chris Charabaruk    schedule 27.06.2011
comment
@SimonJohnson, ты смог это построить? Я ищу способ создать интерпретатор QBASIC (или его варианта), который будет работать в Windows 8. Я бы использовал другой язык, который работает в современной ОС. Я знаю, что вы можете использовать виртуальную машину DOS, но я хотел бы написать виртуальную машину, которая работает на самой машине. Кстати: Написание интерпретатора языка на том же языке называется метакруговой интерпретацией. en.wikipedia.org/wiki/Meta-circular_interpretation   -  person Adam Mendoza    schedule 24.08.2014
comment
Вы не можете скомпилировать Qbasic с помощью Qbasic без исходного кода Qbasic. Вместо этого попробуйте QB64 - он МОЖЕТ скомпилировать себя.   -  person eoredson    schedule 27.08.2016
comment
Чтобы уменьшить путаницу, нет, QBasic/QuickBasic не компилировался/не компилируется в существующих традиционных реализациях, но, в конце концов, нет никаких причин, по которым код QBasic нельзя было бы скомпилировать в том же смысле, что и любой другой код. компилируется, если кто-то написал для него компилятор.   -  person Robert Talada    schedule 09.04.2018


Ответы (3)


QB64 — это хороший клон/расширение QBasic, у которого есть вики с очень подробным ссылка на язык, отсортированная по алфавиту, по использованию или синтаксически.

Примечание. Ключевые слова с префиксом подчеркивания ('_') являются расширениями, которые НЕ были частью классического языка QBasic.

person veganaiZe    schedule 24.07.2016

Microsoft QBasic IDE поставляется с довольно полной документацией по языку и предусмотренным процедурам. Насколько мне известно, это самая полная спецификация, которую вы найдете, но ее должно быть достаточно, чтобы написать компилятор для (большинства) языка, за исключением недокументированной магии peek/poke, специфичной для DOS.

person Michael Ekstrand    schedule 26.04.2011
comment
Да, файл справки QBasic содержит полное описание всех команд. - person Daniel Hanrahan; 09.10.2012
comment
Возможно также полезно: здесь вы также можете найти полную документацию по QuickBASIC 3.0: ousob.com/ нг/qbasic/ng320.php - person bobbel; 03.02.2014

QuickBasic 4.5 может компилироваться в *.exe

person Gussisaurio    schedule 23.06.2012