El lenguaje de programación Mouse (a veces escrito como MOUSE ) es un pequeño lenguaje de programación para computadoras desarrollado por el Dr. Peter Grogono a finales de la década de 1970 y principios de la de 1980. [ 1 ] [ 2 ] [ 3 ] Fue desarrollado como una extensión de un lenguaje anterior llamado MUSYS, que se utilizaba para controlar dispositivos digitales y analógicos en un estudio de música electrónica.
Mouse fue concebido originalmente como un lenguaje pequeño y eficiente para microcomputadoras con memoria limitada. Es un lenguaje interpretado, basado en pila y utiliza la notación polaca inversa . Para facilitar al máximo la implementación de un intérprete, Mouse está diseñado para que un programa se procese como una secuencia de caracteres, interpretándose uno a uno.
El lenguaje Mouse se compone de símbolos (en su mayoría de un solo carácter), cada uno de los cuales realiza una función específica (véase la tabla a continuación). Dado que los nombres de las variables están limitados a un carácter, Mouse solo admite 26 variables posibles (denominadas AZ). Los únicos tipos de datos disponibles son enteros y caracteres.
A pesar de estas limitaciones, Mouse incluye una serie de características relativamente avanzadas, entre las que se incluyen:
- Ramificación condicional
- Bucles
- Consejos
- Macros (subrutinas (que pueden ser recursivas))
- Matrices
- Rastreo de código
El diseño del lenguaje Mouse lo hace ideal para enseñar el diseño de un intérprete simple. Gran parte del libro que describe Mouse [ 3 ] está dedicado a describir la implementación de dos intérpretes, uno en lenguaje ensamblador Z80 y el otro en Pascal .
Detalles
El lenguaje que se describe aquí es la versión posterior de Mouse, tal como se describe en el libro de Mouse. [ 3 ] Esta versión es una extensión del lenguaje descrito en el artículo original de la revista. [ 1 ]
Símbolos
La siguiente tabla describe cada uno de los símbolos utilizados por Mouse. [ 3 ] Aquí X se refiere al número en la parte superior de la pila, e Y es el siguiente número en la pila.
Expresiones
Modismos comunes
Estas expresiones aparecen con frecuencia en los programas de Mouse.
X: ~ almacenar en la variable X X. ~ variable de recuperación X X. Y: ~ copia X en Y N. 1 + N: ~ incrementa N en 1 PQ P: Q: ~ intercambiar valores de P y Q ? A: ~ ingrese un número y guárdelo en A P. ! ~ imprimir variable P
Aporte
El ratón puede introducir números enteros o caracteres. Cuando se introduce un carácter, se convierte automáticamente a su código ASCII.
? X: ~ introduce un número y guárdalo en X ?' X: ~ introduce un carácter y almacena su código ASCII en X
Producción
El ratón puede imprimir números enteros, caracteres o cadenas de caracteres constantes, como se muestra en estos ejemplos. Si aparece un signo de exclamación en una cadena de caracteres constante, se imprime una nueva línea.
X. ~ recuerda el número X e imprímelo. X. !' ~ recuerda el código ASCII X e imprime el carácter "Hola" ~ imprimir cadena "Hola" "Línea 1!Línea 2" ~ imprime las cadenas "Línea 1" y "Línea 2" en dos líneas.
Condicionales
Una declaración condicional tiene la forma general:
B [ S ] ~ equivalente a: si B entonces S
Aquí, B es una expresión que se evalúa como 1 (verdadero) o 0 (falso), y S es una secuencia de enunciados.
Bucles
Los bucles pueden tener varias formas. Las más comunes son las siguientes:
(B ^ S) ~ equivalente a: mientras B haga S (SB ^) ~ equivalente a: repetir S hasta (no B)
Aquí, nuevamente, B es un valor booleano (0 o 1) y S es una secuencia de afirmaciones.
Llamadas macro
El formato de una llamada a una macro (subrutina) se puede ilustrar con el siguiente ejemplo. La macro A de este ejemplo suma los dos parámetros que recibe del programa principal y devuelve la suma en la parte superior de la pila.
#A,p1,p2; ~ llamada en el programa principal a la macro A ... $A 1% 2% + @ ~ macro A (añadir parámetros p1 y p2)
Aquí, p1 y p2 son parámetros que se pasan a la macro.
Programas de ejemplo
Este breve programa imprime "Hola mundo".
"Hola Mundo." $
Este programa muestra los cuadrados de los números enteros del 1 al 10.
1 N: ~ inicializar N a 1 ( NN * ! " " ~ inicio del bucle; imprimir cuadrados de números N. 10 - 0 < ^ ~ salir del bucle si N >= 10 N. 1 + N: ) $ ~ incrementar N y repetir el bucle
Notas
- 1 2 Grogono, Peter (julio de 1979). mii/n197/mode/2up "Mouse / Un lenguaje para microcomputadoras" . BYTE . págs. 198–220 . Recuperado el 18 de octubre de 2013 .
{{cite news}}: Comprobar|url=valor ( ayuda ) - ↑ Lane, Tom; Grogono, Peter (junio de 1980). "Comentario y corrección para Mouse" . BYTE . Consultado el 18 de octubre de 2013 .
- 1 2 3 4 Grogono, Peter. Mouse: A Language for Microcomputers . 151 páginas. Petrocelli Books, Inc.: 1983. ISBN 0-89433-201-5.
Enlaces externos
- El lenguaje de programación del ratón
- El gran renacimiento del lenguaje de programación MOUSE
- Amigos del ratón
- El ratón, el lenguaje
- Mouse: Lenguaje de programación informática (incluye el código fuente de los intérpretes de Mouse)
- Información en sourceforge.net
- Lenguajes de programación orientados a pilas