Articulo de referencia

Lenguaje de programación ASIC

[http://files.mpoli.fi/unpacked/software/programm/pascal/paswiz21.zip/catalog.txt IBRARY: Library for the ASIC compiler. Current Version: 3.1...David A. Visti], Catalog - Update...

ASIC es un compilador y entorno de desarrollo integrado para un subconjunto del lenguaje de programación BASIC . Fue lanzado para MS-DOS y sistemas compatibles como shareware . Escrito por Dave Visti de 80/20 Software, fue uno de los pocos compiladores de BASIC disponibles legalmente para su descarga desde BBS . ASIC permite compilar a un archivo EXE o COM . Un archivo COM para el programa "Hola mundo" tiene 360 ​​bytes. [ 3 ]

ASIC tiene poco o ningún soporte para operadores lógicos , estructuras de control [ 4 ] y aritmética de punto flotante . Estas deficiencias dieron lugar al lema irónico: "ASIC: ¡Es casi BASIC! " [ 5 ] [ 3 ]

Características

ASIC es mucho más limitado que sus contemporáneos BASIC. Las características de ASIC se seleccionaron para que un programa se pudiera compilar de forma fácil y directa a lenguaje máquina . Por lo tanto, muchas construcciones del lenguaje ASIC son equivalentes a construcciones del lenguaje ensamblador .

Elementos del programa

Ni los identificadores ni las palabras clave distinguen entre mayúsculas y minúsculas .

Cualquier DIMinstrucción, si se especifica, debe preceder a todas las demás instrucciones, excepto REMlas instrucciones o las líneas en blanco.

Todas DATAlas instrucciones deben colocarse al principio del programa, antes de todos los demás tipos de instrucciones, excepto DIMlas REMinstrucciones o las líneas en blanco.

Expresiones

ASIC no tiene el operador de exponenciación^ .

ASIC no tiene operadores booleanosAND ( , OR, NOTetc.).

Matrices

El tamaño del array especificado en la DIMinstrucción debe ser una constante literal. Una sola instrucción DIMpermite declarar un único array.

Entrada y salida

PRINTLos argumentos de deben ser un literal o una variable. PRINTNo permite expresiones combinadas como argumentos, ni cadenas concatenadas con ;o +.

Si un PRINTcomando termina con ;o ,, entonces el siguiente PRINTcomando continuará en la posición donde este se quedó, como si su argumento se hubiera añadido al argumento del PRINTcomando actual.

La PRINTinstrucción imprime valores enteros de seis caracteres de ancho. Están alineados a la derecha (sin espacios al final).

LOCATE row, column
Mueve el cursor de texto a la posición ( column, row), donde 0 ≤ columny 0 ≤ row. La posición (0, 0) es la esquina superior izquierda.

Gráficos

PSET (row,column),color
Activa el píxel del color coloren la posición ( column, row), donde 0 ≤ columny 0 ≤ row. La posición (0, 0) es la esquina superior izquierda.

Estructuras de control

Una condición booleana solo puede ser una comparación de números o cadenas, pero no una comparación de expresiones combinadas. Un literal no puede ser el operando izquierdo de la comparación (por ejemplo, puede ser X = 2, no 2 = X).

Decisiones

Después de THEN, puede haber una secuencia de instrucciones delimitadas por ELSEo ENDIF. Un ejemplo:

SI X < 0 ENTONCES IMPRIMIR "Negativo" SINO IMPRIMIR "No negativo" FIN SI

A diferencia de otros BASIC, las instrucciones no se pueden colocar entre THENy el final de la línea.

Una sentencia if puede realizar el salto condicional. En este caso, después THENpuede haber una etiqueta.

Bucle

En FOR, después TOpuede haber solo un número (literal o variable), pero no una expresión combinada. La STEPcláusula no existe en ASIC.

Derivación

En una GOTOdeclaración, la etiqueta debe ir seguida de dos puntos.

Subrutinas

En una GOSUBdeclaración, la etiqueta debe ir seguida de dos puntos.

BAS2ASI

Esta utilidad, que sirve para convertir programas GW-BASIC a sintaxis ASIC, en la versión 5.0 no admite algunas características de GW-BASIC. Ejemplos:

STEPEn el bucle for no se convierte. El programa

10 PARA i = 10 HASTA 1 PASO -1 20 IMPRIMIR i 30 SIGUIENTE i

se convierte en

REM 10 PARA i = 10 A 1 PASO -1 PARA I@ = 10 A 1 ASIC0@ = -1 -1 I@ = I@ + ASIC0@ REM 20 IMPRIMIR i IMPRIMIR I@ REM 30 SIGUIENTE i REM 30 SIGUIENTE i 3 : Error de sintaxis

El operador de exponenciación^ no se convierte. El programa

10 a = 2 20 b = a ^ 10 30 IMPRIMIR b

se convierte en

REM 10 a = 2 L10: A@ = 2 REM 20 b = a ^ 10 2 : Error de sintaxisREM 30 PRINT b REM 30 PRINT b 3 : Error de sintaxis

Referencias

  1. IBRARY: Biblioteca para el compilador ASIC. Versión actual: 3.1...David A. Visti , Catálogo - Actualizado: 1 de febrero de 1996, Charon Software
  2. ASIC 4.0 - Descargar
  3. 1 2 ASIC , Magia del código de área con AC Hunter (programa informático) (en disco) (evaluación), por George Campbell, COMPUTE! NÚMERO 126 / FEBRERO DE 1991 / PÁGINA 86
  4. En ASIC 3.01 (1991), el manual enumera FOR...NEXT , WHILE...WEND e IF...ENDIF , pero no sentencias switch , ni funciones o procedimientos con parámetros o variables locales , solo GOSUB para subrutinas . Los programas de ejemplo usan Goto en lugar de WHILE.
  5. ASIC es obra de David Visti y su compilador toma código que es "casi BASIC" y lo compila en un ejecutable muy pequeño. Archivado el 4 de noviembre de 2015 en Wayback Machine , Programmer's Corner: TIPI: Un pequeño lenguaje de programación para computadoras pequeñas, por Kent Peterson.
  • ASIC 5.00 + Bibliotecas + Enlazador
  • Categoría: Tareas ASIC implementadas en ASIC en rosettacode.org