Free Pascal 1️⃣ ¿Que es?, Historia y su Dialecto
El Free Pascal
es un compilador Pascal portable, libre y de código abierto, que
representa una alternativa a los productos comerciales Turbo Pascal y
Delphi.
![]() |
IDE de FreePascal |
Introducción
Free Pascal es un compilador tanto de 32 como de 64 bits para
múltiples arquitecturas de CPU y múltiples sistemas operativos. El
compilador implementa los dialectos de Pascal de Borland Turbo Pascal y
Delphi, además de algunas construcciones de MacPascal. Está disponible
para la mayoría de los sistemas operativos populares.
Free Pascal se conocía inicialmente como FPK Pascal. Debido a que FPK
son las iniciales del autor, Florian Paul Klämpfl, el FPK Pascal nunca
significó "Free Pascal Kompiler", aunque mucha gente pensaba eso; de
todos modos, escribir el "Compilador" con "K" es infrecuente en
Alemania. A finales de 1997, el nombre del proyecto fue cambiado a Free
Pascal Compiler (FPC) (Compilador Free Pascal) para evitar esta
confusión y por la cantidad cada vez mayor de gente que contribuía.
FPC es un proyecto razonablemente bien documentado, con manuales que alcanzan las 1.800 páginas en total.
Las partes visuales de las bibliotecas de Delphi (el VCL) y la
creación de un IDE y un RAD visuales son parte de un proyecto separado,
denominado Lazarus.
La distribución de Free Pascal incluye un IDE en modo de texto
semejante al de Turbo Pascal. Aunque este IDE se estuvo deteriorando por
algún tiempo debido a una falta de mantenimiento, en un esfuerzo común
la mayoría de los bugs fueron corregidos, así que ahora está en una muy
buena forma.
De manera similar a Turbo Pascal y Delphi, Free Pascal tiene
excelente soporte para la integración del lenguaje ensamblador en el
código Pascal. Además, soporta múltiples arquitecturas y notaciones.
También se llamaba Tubipascal
Dialecto del lenguaje
El FPC adoptó los dialectos estándar de facto de los programadores
Pascal, los dialectos de Borland, específicamente Borland Pascal 7 y
Delphi 2 para la versión 1.0.x del FPC, y Delphi 6/7 para la versión
2.0.x del FPC.
Sin embargo el proyecto tiene un concepto de "modo de compilación", y
el equipo hizo claro que incorporaría los parches para los dialectos
estandarizados ANSI/ISO para crear un modo conforme con el estándar.
También, se ha hecho un pequeño esfuerzo de soportar algo de la
sintaxis del Apple Pascal, para la fácil interconexión con el Mac OS
(X).
Funcionalidad de Delphi faltante en Free Pascal:
- Delegación usando la palabra clave "implements"
- Interfaces duales COM IDispatch automáticas (dispinterfaces)
- dispid en interfaces normales
- Paquetes:el compilador soporta importación y exportación de clases desde y hacia librerías compartidas (útil, por ejemplo, para Lazarus, el cual implementa el empaquetado de componentes)
- set types pueden tener diferentes tamaños
Historia
Primeros años
Free Pascal emergió cuando Borland dejó claro que no habría un
Borland Pascal 8, y que la versión siguiente sería un producto solamente
para Windows (que posteriormente resultó convertirse en Delphi). Un
estudiante, Florian Paul Klämpfl, comenzó a trabajar en su propio
compilador. El compilador fue escrito desde el principio en el dialecto
de Turbo Pascal de Borland y producía código de 32 bits para el DOS
extender go32v1, desarrollado en ese tiempo por el proyecto DJGPP.
Originalmente el compilador en sí mismo era un ejecutable DOS de 16 bits
compilado por Turbo Pascal. Después de dos años, el compilador podía
compilarse a sí mismo, así que también llegó a ser de 32 bits.
Expansión
![]() |
IDE FreePascal para Linux. El computador era preparado para ser usado en el 2002 para el National Olympiad in Informatics, China. |
El compilador inicial de 32 bits fue publicado en la red, y los
primeros contribuidores se unieron el proyecto. En los años siguientes a
publicarse en Internet, Michael van Canneyt hizo un traslado al Linux, 5
años completos antes de Kylix. El traslado al DOS fue adaptado para el
uso en el OS/2 a través del EMX extender. La versión del DOS también
mejoró gradualmente, y emigró al go32v2 extender. Esto culminó en el
lanzamiento de la versión 0.99.5 que fue usada mucho más extensamente
que las versiones anteriores, y el último lanzamiento que apuntaba
solamente a la conformidad con el Turbo Pascal. Lanzamientos posteriores
agregarían un modo de compatibilidad con Delphi. El 0.99.5 también fue
trasladado a sistemas que usaban los CPU de la serie 680x0.
En la versión 0.99.8, fue agregado como destino la compilación para
el Win32, y se inició la incorporación de algunas características de
Delphi. Fue iniciada la estabilización para el lanzamiento de la versión
1.0, y este hito fue alcanzado en julio de 2000. La serie 1.0.x, y los
lanzamientos para estabilización y corrección de errores que siguieron
hasta la versión 1.0.10 en julio de 2003 fueron ampliamente usadas como
una herramienta tanto empresarial como educativa. Para los lanzamientos
de esta serie, el traslado a los CPUs 680x0 fue hecho de nuevo, con lo
cual el compilador pudo producir código estable para un número de
computadores con procesadores 68k, como sistemas UNIX y AmigaOS.
La siguiente generación
Durante la estabilización de lo que se convirtió en la versión 1.0.x,
y especialmente cuando se transportaba a los sistemas m68k, estaba
claro que el diseño del generador de código estaba muy limitado de
muchas maneras. Los dos problemas más importantes eran que (1) agregar
procesadores significaba básicamente que había que reescribir el
generador de código, y (2) la asignación de registros estaba basada en
un principio que era difícil de mantener e inflexible, obligando a tener
3 registros entre los bloques de construcción.
Por estas razones, FPC 1.1.x se separó de la rama principal del
1.0.x, en diciembre de 1999. Al principio, los cambios eran sobre todo
limpieza, reescritura de código, en todas las partes del compilador;
entonces se reescribieron el generador de código y la asignación de
registros. Como un bono, se agregó la compatibilidad que faltaba con
Delphi.
El trabajo sobre 1.1.x continuó lentamente pero con constancia, y a
finales de 2003 el traslado al PowerPC comenzó trabajar, seguido por los
traslados al ARM y al Sparc en el verano y otoño de 2004. Continuó
luego el traslado al AMD64 a principios de 2004. Este último
efectivamente convirtió al compilador en uno de 32 y 64 bits.
En noviembre de 2003, un primer lanzamiento beta de la rama del 1.1.x
fue empaquetado, y para la ocasión, el número de versión fue subido a
1.9.0. Estos fueron seguidos rápidamente por 1.9.2 y 1.9.4. La versión
1.9.4 fue especial porque fue la primera versión con soporte para Mac OS
X.
El trabajo continuó con la versión 1.9.6 en enero de 2005, 1.9.8 a
finales de febrero de 2005, 2.0.0 en mayo de 2005, 2.0.2 en diciembre de
2005 y 2.0.4 en agosto de 2006. Actualmente la última versión es la
2.6.0.
El futuro
Mapa de camino a corto plazo (2.1.x)
- crear y mejorar el soporte para COM y OLE. Esto tiene múltiples facetas:
- interfaces/vmt compatible con COM
- Variants, (necesario para OLE)
- delegación al estilo de implements
- cambios y mejoras en los formatos de enlazado/depuración/archivo
- mejora de enlazado inteligente (elimina los archivos .a, menos uso de memoria
- mejora de "paquetes" y librerías dinámicas soporte PIC! en general
- enlazado cruzado (cross linking) (actualmente el 2.0 ya tiene bastante capacidad de enlazado cruzado)
- crossover stabs -> dwarf
- Algún soporte para resources compatibles con Kylix (todavía bajo discusión)
- soporte para tipos de archivo nativo de tamaño de 64 bits (hecho)
- cambios en relación a Apple Pascal
- tener la capacidad de pasar un subprocedimiento, como un procvar, a un diferente proc;
Algunas de las funcionalidades de destino (especialmente en la
sección enlazadora) pudieron requerir reestructuras relacionadas a
- introducción de un linker interno para algunas plataformas principales (no más LD)
- reescritura del manejo del módulo (unit)
Lazarus es una herramienta de desarrollo rápido de aplicaciones basada en el lenguaje de programación Object Pascal, disponible para los sistemas operativos Windows, GNU/Linux y Mac OS X. Se trata de una alternativa libre y gratuita a Delphi, desarrollada como proyecto de software libre a partir de Free Pascal.
Descargar Lazarus desde la pagina de la comunidad.
Referencia:
- https://es.wikipedia.org/wiki/Free_Pascal
- https://es.wikipedia.org/wiki/Free_Pascal
Comentarios
Publicar un comentario