язык программирования ASIC
Оригинальный автор(ы) | Дэйв Визас |
---|---|
Разработчик(и) | Программное обеспечение 80/20 [1] |
Первоначальный выпуск | до 1993 года [2] |
Финальный выпуск | 5.00
/ 1994 |
Написано в | сборка x86, Турбо C |
Операционная система | MS-DOS |
Тип | БАЗОВЫЙ |
Лицензия | Условно-бесплатное ПО |
ASIC — это компилятор и интегрированная среда разработки для подмножества языка программирования BASIC . Он был выпущен для MS-DOS и совместимых систем как условно-бесплатная версия . Написанный Дэйвом Висти из 80/20 Software, это был один из немногих компиляторов BASIC, легально доступных для загрузки с BBS . ASIC позволяет компилировать в EXE или COM-файл . COM-файл для программы Hello world имеет размер 360 байт. [3]
ASIC практически не поддерживает логические операторы , структуры управления , [4] и арифметика с плавающей запятой . Эти недостатки привели к появлению ироничного девиза: «ASIC: это почти БАЗОВЫЙ!» [5] [3]
Функции
[ редактировать ]ASIC сильно обеднел по сравнению с современными ему BASICами. Функции ASIC выбраны таким образом, чтобы программу можно было легко и напрямую компилировать в машинный язык. Таким образом, многие языковые конструкции ASIC эквивалентны конструкциям языка ассемблера.
Элементы программы
[ редактировать ]Ни идентификаторы, ни ключевые слова не чувствительны к регистру.
Любой DIM
операторы, если они указаны, должны предшествовать всем остальным операторам, кроме REM
операторы или пустые строки.
Все DATA
операторы должны быть размещены в начале программы перед всеми остальными типами операторов, кроме DIM
, REM
утверждения или пустые строки).
Выражения
[ редактировать ]ASIC не имеет возведения в степень оператора ^
.
ASIC не имеет логических операторов ( AND
, OR
, NOT
и т. д.).
Массивы
[ редактировать ]Размер массива, указанный в DIM
оператор должен быть буквальной константой. Одиночный DIM
позволяет объявить только один массив.
Ввод и вывод
[ редактировать ]PRINT
Аргументы должны быть литералом или переменной. PRINT
не позволяет использовать комбинированные выражения в качестве аргументов, а также не позволяет использовать строки, объединенные с помощью ;
или +
.
Если PRINT
команда заканчивается на ;
или ,
, затем следующий PRINT
команда возобновит работу с того места, где она остановилась, как если бы ее аргумент был добавлен к аргументу текущей команды. PRINT
команда.
The PRINT
Оператор печатает целочисленные значения шириной шесть символов. Они выравниваются по правому краю (без пробелов).
LOCATE row, column
- Перемещает текстовый курсор в позицию (
column
,row
), где 0 ≤column
и 0 ≤row
. Позиция (0, 0) — верхний левый угол.
Графика
[ редактировать ]PSET (row,column),color
- Включает пиксель цвета
color
на позиции (column
,row
), где 0 ≤column
и 0 ≤row
. Позиция (0, 0) — верхний левый угол.
Структуры управления
[ редактировать ]Логическое условие может представлять собой только сравнение чисел или строк, но не сравнение комбинированных выражений. Литерал не может быть левым операндом сравнения (например, может быть X = 2
, нет 2 = X
).
Решения
[ редактировать ]После THEN
, может существовать последовательность операторов, разделенная ELSE
или ENDIF
. Пример:
IF X < 0 THEN
PRINT "Negative"
ELSE
PRINT "Non-negative"
ENDIF
В отличие от других BASICов, операторы не могут быть помещены между THEN
и конец строки.
Оператор if может реализовать условный переход. В этом случае после THEN
может быть этикетка.
Зацикливание
[ редактировать ]В FOR
, после TO
может быть только число — буквальное или переменное — но не комбинированное выражение. STEP
этого пункта не существует в ASIC.
Ветвление
[ редактировать ]В GOTO
инструкции, после метки должно стоять двоеточие.
Подпрограммы
[ редактировать ]В GOSUB
инструкции, после метки должно стоять двоеточие.
БАС2АСИ
[ редактировать ]Эта утилита, служащая для преобразования программ GW-BASIC в синтаксис ASIC, в версии 5.0 не поддерживает некоторые функции GW-BASIC. Примеры:
STEP
в цикле for не преобразуется. Программа
10 FOR i=10 TO 1 STEP -1
20 PRINT i
30 NEXT i
преобразуется в
REM 10 FOR i=10 TO 1 STEP -1
FOR I@ = 10 TO 1
ASIC0@ = -1 -1
I@ = I@ + ASIC0@
REM 20 PRINT i
PRINT I@
REM 30 NEXT i REM 30 NEXT i 3: Syntax error
Оператор возведения в степень ^
не конвертируется. Программа
10 a=2
20 b=a^10
30 PRINT b
преобразуется в
REM 10 a=2
L10:
A@ = 2
REM 20 b=a^10
2: Syntax error
REM 30 PRINT b REM 30 PRINT b 3: Syntax error
Ссылки
[ редактировать ]- ^ IBRARY: Библиотека для компилятора ASIC. Текущая версия: 3.1... Дэвид А. Висти , Каталог – Обновлено: 1 февраля 1996 г., Charon Software
- ^ ASIC 4.0 - Скачать
- ^ Jump up to: а б ASIC , Магия кодов городов с AC Hunter (компьютерная программа) (На диске) (оценочная версия), Джордж Кэмпбелл, ВЫЧИСЛЕНИЯ! ВЫПУСК 126 / ФЕВРАЛЬ 1991 ГОДА / СТРАНИЦА 86
- ^ В ASIC 3.01 (1991) в руководстве перечислены FOR...NEXT , WHILE...WEND и IF...ENDIF , но нет операторов переключения , а также нет функций или процедур с параметрами или локальными переменными , только GOSUB для подпрограмм . В примерах программ используется Goto . вместо WHILE
- ^ ASIC — это работа Дэвида Висти, и его компилятор берет код, который является «почти BASIC», и компилирует его в очень маленький исполняемый файл. Архивировано 4 ноября 2015 года в Wayback Machine , Уголок программиста: TIPI: небольшой язык программирования для небольших компьютеров, Кент Петерсон.
Внешние ссылки
[ редактировать ]- ASIC 5.00 + Библиотеки + Компоновщик
- Категория: Задачи ASIC, реализованные в ASIC на сайтеrosettacode.org