Ideado por Niklaus Wirth a finales de la década de 1960 y principios de la de 1970, Pascal es un lenguaje de programación . Originalmente producido por Borland Software Corporation, Embarcadero Delphi se compone de un IDE, un conjunto de bibliotecas estándar y un lenguaje basado en Pascal comúnmente llamado Object Pascal , Delphi Pascal o simplemente 'Delphi' (la documentación actual de Embarcadero se refiere a él como 'el Lenguaje Delphi (Object Pascal) ' [1] ). Desde su lanzamiento por primera vez, se ha convertido en la implementación comercial de Pascal más popular.
Mientras desarrollaba Pascal, Wirth empleó un procedimiento de arranque en el que cada versión más nueva del compilador de Pascal se escribía y se compilaba con su predecesor. Por lo tanto, el compilador 'P2' se escribió en el dialecto compilable por 'P1', 'P3' a su vez se escribió en 'P2' y así sucesivamente, hasta llegar a 'P5'. El compilador 'P5' implementó Pascal en su estado final según lo definido por Wirth, y posteriormente se estandarizó como 'ISO 7185 Pascal'.
El dialecto Borland, como el popular UCSD Pascal antes, tomó la versión 'P4' del idioma como base, en lugar de la revisión final de Wirth. Después de mucha evolución independiente de Standard Pascal, la variante Borland se convirtió en la base de Delphi. Esta página repasa las diferencias entre Delphi y Standard Pascal. No , no entra en extensiones de Delphi-específicas del lenguaje, que son numerosos y sigue aumentando.
Diferencias entre Pascal estándar y Delphi
1. La forma en que se pueden pasar procedimientos y funciones como parámetros difiere: Delphi requiere que se declaren tipos de procedimientos explícitos donde Standard Pascal no lo hace.
2. Delphi no admite los llamados 'gotos extraprocedurales', en los que las sentencias goto pueden hacer referencia a objetivos fuera del cuerpo del procedimiento / función actual.
3. Pascal estándar tiene archivos 'variables de búfer', junto con procedimientos estándar 'get' y 'put' que operan en ellos. Ninguno de los dos es compatible con Delphi.
4. Dado un registro de variante en Standard Pascal, se puede especificar el tamaño de una variante en particular. Delphi no admite esta forma de asignación de variable dinámica 'dimensionada':
new ( p , t ) // donde t es un tipo de etiqueta de registro variante; no se compila en Delphi
5. Las funciones 'empaquetar' y 'desempaquetar' no están implementadas en Delphi.
6. El compilador Delphi no trata {y (*,} y *) como sinónimos como lo requiere Standard Pascal. En otras palabras,
{ comentario * )
no es válido en Delphi. En cambio, Delphi usa el esquema de permitir que los diferentes tipos de comentarios indiquen comentarios anidados.
7. Delphi no reemplaza eoln con espacio como lo requiere el estándar Pascal. Cuando se lee hasta el final de una línea, se supone que el carácter eoln debe reemplazarse por un espacio en ISO 7185. En cambio, leer eoln en Delphi da el código de carácter para el retorno de carro (13), seguido de un salto de línea (10).
8. La versión de Delphi de los procedimientos estándar Write y WriteLn no imprime números y valores booleanos en sus anchos de campo 'predeterminados', sino que se imprime en la cantidad mínima de espacio. Por ejemplo, en Delphi,
escribir ( 5 ) ; escribir ( 55 ) ;
es equivalente a:
escribir ( 5 : 1 ) ; escribir ( 55 : 2 ) ;
Sin embargo, Standard Pascal requiere que sea equivalente a lo siguiente (TotalWidth está definido por la implementación):
escribir ( 5 : Ancho total ) ; escribir ( 55 : Ancho total ) ;
Del mismo modo, para los valores booleanos,
escribir ( falso ) ; escribir ( verdadero ) ;
es equivalente a
escribir ( 'falso' : 5 ) ; escribir ( 'verdadero' : 4 ) ;
en Delphi, pero
escribir ( 'falso' : Ancho total ) ; escribir ( 'verdadero' : Ancho total ) ;
en ISO 7185.
9. Los archivos temporales no son compatibles con Delphi usando E / S Pascal tradicional: la ejecución de Reset () o Rewrite () da como resultado un error, donde en Standard Pascal abre un archivo temporal que existe durante la duración del programa antes de ser eliminado automáticamente .
10. A pesar del hecho de que Delphi todavía permite usar gran parte del RTL tradicional de Pascal, la funcionalidad de la biblioteca específica de Delphi generalmente se implementa en el código Delphi ordinario que usa, en lugar de agregar, elementos intrínsecos proporcionados por el compilador. Esta filosofía contrasta con Standard Pascal, cuyo RTL debe ser proporcionado por el compilador. Por ejemplo, en Standard Pascal, el tipo 'archivo' es un tipo intrínseco, algo así como un registro, pero otro tipo definido por el compilador junto con los registros. En contraste, la clase TFileStream en Delphi es una clase ordinaria de Delphi escrita en código ordinario de Delphi. De manera similar, los procedimientos estándar Read, ReadLn, Write y WriteLn tienen firmas que no son firmas Pascal legales en sí mismas. Si bien Delphi todavía los implementa, solo en muy raras ocasiones las rutinas RTL específicas de Delphi requieren un manejo especial similar: más bien, el lenguaje se desarrolló para incluir características como 'matrices abiertas', parámetros predeterminados y sobrecarga de procedimientos que pueden ser utilizados por rutinas escritas por el usuario. también.
Ver también
Referencias
Otras lecturas
- Kathleen Jansen y Niklaus Wirth : PASCAL - Manual de usuario e informe. Springer-Verlag, 1974, 1985, 1991, ISBN 0-387-97649-3 , ISBN 0-387-90144-2 y ISBN 3-540-90144-2 [1]
- Niklaus Wirth: El lenguaje de programación Pascal. Acta Informatica, 1, (junio de 1971) 35-63
- ISO / IEC 7185: Lenguajes de programación - PASCAL. [2]
- Doug Cooper: Standard Pascal: Manual de referencia del usuario. WW Norton & Company, 1983, ISBN 0-393-30121-4 , ISBN 978-0-393-30121-2
- Documentos de normas Pascal [3]
enlaces externos
- El sitio web estándar ISO 7185 Pascal [4]