PL360 (o PL / 360) es un lenguaje de programación de sistemas diseñado por Niklaus Wirth y escrito por Wirth, Joseph W. Wells Jr. y Edwin Satterthwaite Jr. para la computadora IBM System / 360 en la Universidad de Stanford . Una descripción de PL360 se publicó a principios de 1968, aunque la implementación probablemente se completó antes de que Wirth dejara Stanford en 1967. [1]
Paradigmas | Procesal , imperativo , estructurado |
---|---|
Familia | Wirth ALGOL |
Diseñada por | Niklaus Wirth , Joseph W. Wells Jr., Edwin Satterthwaite Jr. |
Desarrollador | Universidad Stanford |
Apareció por primera vez | 1966 |
Disciplina de mecanografía | Estático , fuerte |
Alcance | Léxico (estático) |
Lenguaje de implementación | ALGOL , luego PL360 |
Plataforma | Burroughs B5000 , IBM System / 360 |
Influenciado por | |
ALGOL , Lenguaje orientado a problemas de sistemas ejecutivos (ESPOL) | |
Influenciado | |
ALGOL W |
Descripción
PL / 360 es un compilador de una sola pasada con una sintaxis similar a ALGOL que proporciona facilidades para especificar instrucciones exactas de código de máquina (lenguaje) y registros similares [a] al lenguaje ensamblador , pero también proporciona características que se encuentran comúnmente en lenguajes de programación de alto nivel , como como expresiones aritméticas complejas y estructuras de control . Wirth utiliza PL360 para crear ALGOL W .
Los tipos de datos son: [2] : p.2–1
- Byte o carácter - 1 byte
- Entero corto: 2 bytes, interpretado como un número entero en notación binaria en complemento a dos
- Entero o lógico: 4 bytes, interpretado como un número entero en notación binaria en complemento a dos
- Real: 4 bytes, interpretado como un número aritmético de punto flotante corto en base 16 ( hexadecimal )
- Long real: 8 bytes, interpretado como un número de punto flotante largo en base 16
Los registros pueden contener números enteros, reales o reales largos.
Las instrucciones individuales de System / 360 se pueden generar en línea usando la "declaración de función" PL360 que define una instrucción por formato y código de operación. Los argumentos de la función se asignaron secuencialmente a los campos de la instrucción. Algunos ejemplos son:
definición | referencia | |
---|---|---|
UNPK(10,#F300) | UNPK(3,7,B2,worker) | |
EX(2,#4400) | EX(R1,MVC(0,lines,buffer)) | nota referencia anidada |
Ejemplo
R0, R1 y R2 y FLAG son nombres predeclarados.
COMENZAR INTEGER BUCKET ; SI LA BANDERA ENTONCES EMPIEZA EL CUCHARÓN : = R0 ; R0 : = R1 ; R1 : = R2 ; R2 : = CUCHARÓN ; TERMINAR EL SIGUIENTE COMIENZO CUCHARÓN : = R2 ; R2 : = R1 ; R1 : = R0 ; R0 : = CUCHARÓN ; FINALIZAR RESET ( BANDERA ) ; FINAL
Implementación
Wirth estuvo en Stanford entre 1963 y 1967, durante la primera parte de la cual estaba desarrollando su compilador e intérprete Euler , cuyas fuentes datan de 1965. También en 1965, Stanford actualizó sus grandes sistemas Burroughs B5000 basados en memoria de batería a un almacenamiento en disco. basado en B5500.
Dado que el IBM S / 360 de destino (que iba a reemplazar un IBM 7090 existente ) no se instaló hasta 1967, la implementación inicial de PL360 se escribió en ALGOL y se probó en el B5500 de Stanford. Una vez en funcionamiento, el compilador se recodificó en PL360, se volvió a compilar en el sistema Burroughs y se movió como un archivo binario al S / 360. [1]
El B5500 está programado en un lenguaje de alto nivel derivado de ALGOL, Executive Systems Problem Oriented Language (ESPOL), y PL360 tenía la intención de brindar una instalación comparable a la arquitectura de mainframe de IBM, aunque carecía de las principales instalaciones de Assembler F y ESPOL. Esta intención se ignoró en gran medida, y los programadores continuaron utilizando implementaciones de los ensambladores de macros de IBM .
Sin embargo, a principios de la década de 1970, PL360 se amplió para proporcionar más capacidades y fue el lenguaje de programación elegido para desarrollar el Sistema de Recuperación de Información Física de Stanford (SPIERS), el Sistema de Gestión de Base de Datos de Stanford.
Ver también
Notas
- ^ Pero careciendo de facilidades para la direccionabilidad implícita, por ejemplo,
USING
Referencias
- ^ Wirth, Niklaus (enero de 1968). "PL360, un lenguaje de programación para las computadoras 360". Revista de la ACM . 15 (1): 34–74. doi : 10.1145 / 321439.321442 .
- ^ Universidad Stanford. "Manual de referencia PL 3 6 0" . Consultado el 21 de octubre de 2012 .
enlaces externos
- PL360 Manual de referencia
- Libro de texto PL360
- PL360 @ Everything2