Principios de compilación de lenguajes de programación chinos
El sistema Hanbian es un entorno de programación interactivo diseñado originalmente para que los programadores desarrollen aplicaciones en computadoras pequeñas y microcomputadoras. Se utiliza principalmente en informática científica y control industrial, como instrumentación, robótica, control de procesos, procesamiento de gráficos e imágenes, inteligencia artificial y aplicaciones comerciales. Las principales ventajas de los lenguajes de programación chinos son el rápido desarrollo de software, la interactividad y el uso eficiente del hardware informático.
La mayor diferencia entre el lenguaje compilado chino y los lenguajes tradicionales es su escalabilidad. El proceso de programación del idioma chino consiste en definir nuevas palabras, y las palabras son en realidad nuevos comandos del idioma. Las palabras se pueden definir utilizando una serie de palabras previamente definidas, un proceso similar al de educar a los niños: siempre enseñamos a los niños nuevos conceptos utilizando conceptos que han entendido previamente, y estas palabras se denominan "definiciones superiores". Asimismo, también se pueden definir nuevas palabras mediante código ensamblador.
El resultado de la escalabilidad es que cuando desarrollamos una aplicación, también desarrollamos indirectamente un "módulo orientado a la aplicación" especial para este tipo de aplicación, que puede usarse o modificarse para aplicaciones similares.
La extensibilidad del idioma chino no se trata solo de agregar nuevos comandos al idioma en sí, por lo que no se equiparan las definiciones con las definiciones de funciones y procedimientos del lenguaje tradicional de alto nivel. El sistema también puede expandir la palabra de definición. (Construcción de palabras) para crear una palabra que pueda definir otras palabras. Este tipo de palabra se denomina "palabra de definición". Al crear dicha palabra de definición, el programador puede especificar el comportamiento especial de la palabra en tiempo de compilación. , o ambos. Esta capacidad nos permite definir tipos de datos especiales y ejercer un control total sobre su comportamiento y estructura, y debido a esto, el comportamiento en tiempo de ejecución de las palabras se puede utilizar en un lenguaje de alto nivel o en lenguaje ensamblador, por lo que las palabras creadas por. las palabras de definición tendrán el mismo rendimiento que otras palabras compiladas en chino. El sistema también nos permite agregar un nuevo "indicador de compilación" para implementar tipos especiales de bucles u otras estructuras de control. Por ejemplo, el idioma chino define una palabra variable del programa: dar, y su código es aproximadamente el siguiente:
edit( 32-digit-
( - -- 32 dígitos) \ Tiempo de ejecución
La dirección disponible para construir palabras es 4 y los bytes están libres para escribir
Lectura de acción
Al definir variables
5: Dé la variable uno
Entonces 5 se escribirá automáticamente en el campo de entidad de la variable uno
Cuando se ejecute "variable uno"
Variable uno
Luego, el número 5 en el campo de entidad variable se lee automáticamente y se coloca en la pila. Las palabras compiladas en chino se pueden definir utilizando palabras previamente definidas o código ensamblador. Son similares a las subrutinas en otros idiomas y también son similares a. otras subrutinas. El comando de idioma es equivalente. El sistema de edición chino nos permite escribir el nombre de la palabra de una instrucción en el teclado, y la palabra se ejecutará inmediatamente. Sin embargo, si ponemos el nombre de la palabra de la función en la definición, se compilará en el nombre de la palabra.
Las palabras de alto nivel se definen mediante colecciones de otras palabras. Podemos considerar este proceso como macros en otros idiomas que se agregan a la memoria. se pueden usar y se agregan sus definiciones. Agréguelo al diccionario. En las reglas de nomenclatura de una palabra china, solo hay unos pocos caracteres que no se pueden usar como nombres de palabras. Cuando se encuentra una palabra, el sistema chino busca en el diccionario. La función que espera encontrar una definición para la palabra se ejecuta inmediatamente o se compila en una nueva definición como referencia. Sin embargo, si la palabra no se encuentra en el diccionario. el sistema intenta convertirlo en un número. Si la conversión es exitosa, se coloca en la pila. Si no se puede convertir en un número, se muestra el nombre de la palabra no definida y se imprime un mensaje de error para informar que la palabra es. desconocido para el sistema.
El proceso de ejecución de la edición de palabras en chino se puede simular con una palabra de la siguiente manera:
Prueba de edición de palabras
{\Cadena de nombre de palabra--} p>
Se dejan vacíos 255 bytes para la cadena de nombre de palabra
La cadena de nombre de palabra 255 se llena con 0
Transmisión de cadena de cadena de nombre de palabra
Nombre de palabra cadena (Búsqueda de palabras)
0=
Solo
Contar bytes
Cadena>Número
Solo
♀
En caso contrario
Cadena cadena de nombre de palabra no definida cadena + transmisión
Cuenta de bytes de cadena de nombre de palabra
Carro devolver cadena de impresión
Restablecer todo
Luego
De lo contrario
Ejecutar
Luego
p>. ★
Mira la cantidad de cadenas y la prueba de búsqueda de palabras. La cantidad de pilas está vacía ★
Cadena 123456 Prueba de búsqueda de palabras★.
¡Mira! en el número de pilas[1] 123456★.
Pantalla 123456★
Prueba de búsqueda de palabras del método de visualización de cadenas
El método de visualización no está definido
Proceso de compilación del sistema de edición chino Como se muestra en la imagen de la derecha (fuente del diagrama de flujo: Blog de Hanbian Sina).
El lenguaje de programación chino se adhiere al principio de "programación estructurada":
·Las palabras deben definirse antes de ser citadas;
·El flujo lógico es limitado únicamente. Para ordenar, condiciones y bucles, existen palabras especializadas para implementar estructuras de control de programas comunes;
· Los programadores utilizan muchos módulos (palabras) pequeños e independientes para lograr la máxima capacidad de prueba y confiabilidad;
· Los programadores utilizan muchos módulos (palabras) pequeños e independientes para lograr la máxima capacidad de prueba y confiabilidad;
· p>
Este enfoque tiene dos ventajas obvias
· Siempre se construyen nuevas palabras a partir de palabras previamente definidas y probadas, por lo que la depuración es más fácil. Los módulos se pueden ejecutar individualmente para probar su funcionalidad;
·La modularidad inherente hace que el lenguaje de programación chino sea un "lenguaje de diseño", lo que permite el diseño de arriba hacia abajo mientras se mantienen las pruebas de abajo hacia arriba. Una palabra se puede utilizar en diferentes programas, pero su función sólo necesita definirse una vez;
Estos garantizan que el software de edición en chino se pueda desarrollar de forma rápida y eficaz. Al mismo tiempo, si se gestiona correctamente, puede hacerlo. también puede utilizarse como base para su propia documentación.
Los cinco elementos principales del idioma chino determinan sus características:
·Un diccionario;
·Dos pilas de datos, una es una pila de parámetros, la otra es una pila de retorno para anidamiento;
·intérprete de teclado (flujo de entrada);
·un compilador;
·almacenamiento virtual el diccionario son los datos y; espacio de almacenamiento de código para palabras de definición china y también establece un índice de palabras para su compilación. Las palabras del diccionario incluyen palabras de código de programa chino, palabras de definición constante, palabras de definición variable y palabras de definición indefinida. La parte orientada a objetos también incluye plantillas, objetos, eventos de objetos y mensajes.
El código chino se almacena en el diccionario. El diccionario ocupa una gran parte de la memoria del sistema y consta de una cadena de entradas de longitud variable, cada una de las cuales define una palabra. El contenido de cada definición varía según el tipo de palabra (dato, constante, secuencia de operaciones, etc.) y el diccionario es extensible.
Las palabras se agregan al diccionario a través de "palabras de definición". La palabra de definición más utilizada es "edición". Cuando se ejecuta "edición", los siguientes nombres de palabras se escanean inmediatamente y se crea una entrada en el diccionario. Luego ingrese al modo "compilar". Existen muchos métodos de compilación diferentes, el más utilizado es la "codificación de subprocesos", que compila la definición en una serie de referencias de direcciones a palabras definidas previamente. La definición de una palabra termina en "." (punto). La siguiente es la definición de una palabra:
editar cuadrado ( -- ) ♂ * mostrar .
Cuando un término se compila en un diccionario (llamado encabezado de definición), contiene un puntero al encabezado anterior en el diccionario. El nombre de la nueva palabra se agrega al diccionario (aquí es un cuadrado) y luego se compila en el diccionario un puntero a la llamada de subrutina "(editar)" denominada "(editar)" como primera parte de la definición. Este puntero apunta a una sección que debe ejecutarse al interpretar el cuerpo de la definición. Por supuesto, esta no es la única técnica de compilación, pero es la más común. Esta técnica se llama codificación de cadenas indirecta, porque el primer elemento de la definición es una referencia a un fragmento de código que sabe cómo interpretar la otra definición. regiones.
Las otras partes de la definición se denominan cuerpo de esta definición. En el modo de compilación, el sistema buscará la primera parte de cada palabra por turno. Cada dirección de encabezado se coloca en el cuerpo de la definición por turno, generando así una lista de direcciones. Finalmente, cuando se llega a ".", la dirección de la subrutina denominada "." se compila en el diccionario. "." Se utiliza una subrutina para devolver el control a la palabra que llama, al igual que un retorno de subrutina.