КОНТР-&-БАСИК | ||
Препроцессор языка Бейсик
Язык Бейсик является чрезвычайно простым языком, но в то же время, на нём трудно писать большие программы (длиннее, чем можно охватить взглядом на экране), особенно в реализациях языка, где имена переменных зарезервированы, а длина составляет 1-2 символа, в таких случаях комментарии не сильно помогают. Идеальный случай, когда длина имени переменной такова, что понятен смысл и без комментариев, то есть, когда можно говорить, о “самокомментируемости“ объекта языка, сказанное относится к именам меток и константным числам. Длинные имена находятся в противоречии с быстродействием интерпретатора и размером памяти программ.
Эту проблему может разрешить применение препроцессора, специальной программы-конвертора. В тексте программы помещаются строчки директивой препроцессора, пишется желаемое длинное имя, знак “=”, а за ним численное значение или имя переменной. В тексте программы размещается необходимое количество пояснений, их можно писать с использованием оператора и с использованием знака апострофа. Далее, везде, где необходимо, вместо коротких имён и численных значений, можно использовать символьные определения, сделанные ранее при помощи директивы. В конечном итоге, текст будет похож на пример, который приведён ниже.
rem ******************************************* |
Полученный текст сохраняется под именем, например, elbug.bas, далее, в командной строке набирается:
TBPREP.EXE –I elbug.bas –O elbug.out
Примечание. TBPREP.EXE должен находиться в этом же каталоге или быть видимым из текущего расположения. Чтобы он был виден из любого места, самый простой способ – поместить его в директорию C:\WINDOWS, например. В результате работы препроцессора, будет получен файл elbug.out (содержимое показано ниже), в котором отсутствуют комментарии, а вместо символьных имён подставлены значения, расположенные в правой части определений
PRINT PRINT "**************************" PRINT "* ElbugKey Version 1.2 *" PRINT "* 20.11.2006 TbcGroup *" PRINT "**************************" 50 CLRB 2 CLRB 4 100 ADC D D=D+15 SETB 128 TSTB A,1 IF A=0 THEN GOSUB 200 TSTB A,2 IF A=0 THEN GOSUB 300 ADC P P=P+50 CLRB 128 IF T=0 THEN GOTO 50 T=T-1 GOTO 100 200 SETB 1 SETB 2 SETB 4 SETB 3 T=P SETB 127 CLRB 3 DELAY D CLRB 1 CLRB 3 CLRB 127 DELAY D RETURN 300 SETB 2 SETB 4 SETB 127 SETB 1 SETB 3 T=P DELAY D DELAY D DELAY D CLRB 1 CLRB 3 CLRB 127 DELAY D RETURN |
Такой текст займёт меньше места в контроллере. Скачать препроцессор можно здесь
Обновлён: 11.01.2007 |