Free Pascal
De Wikipedia, la enciclopedia libre
Free Pascal | |
---|---|
Compilador Free Pascal |
|
Desarrollador: | Florian Paul Klämpfl y voluntarios |
Última versión: | 2.0.4 / Agosto 2006 |
S.O.: | Multiplataforma |
Género: | Compilador de lenguaje Pascal |
Licencia: | GPL |
En español: | ? |
Sitio Web: | www.freepascal.org |
El Free Pascal (o FPK Pascal) es un compilador Pascal portable, libre y de código abierto, que representa una alternativa a los productos comerciales Turbo Pascal y Delphi. Su entorno en modo texto es muy similar al de Turbo Pascal de Borland, pero con más opciones. También existen entornos de desarrollo para Windows con Dev-Pascal de Bloodshed.
Tabla de contenidos |
[editar] Introducción
El Free Pascal es un compilador tanto de 32 como de 64 bits para múltiples architecturas 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 habitualmente 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 1800 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 trae 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. El FPC incluso soporta múltiples arquitecturas y notaciones.
[editar] 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 (software), el cual implementa el empaquetado de componentes)
- set types pueden tener diferentes tamaños
[editar] Historia
[editar] Primeros años
Free Pascal emergió cuando Borland hizo claro que no habría un Borland Pascal 8, y 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.
[editar] Expansión
El compilador inicial de 32 bits fue publicado en la red, y los primeros contribuidores se unieron el proyecto. En los años después de 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.
[editar] 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. Éstos 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 2006.
[editar] 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)
[editar] Plataformas disponibles
La disponibilidad del compilador FPC depende de la versión principal.
[editar] Versión 2.1.x (versión en desarrollo)
[editar] Versión 2.0.x
La versión estable actual 2.0.2 soporta lo siguiente
[editar] Versión 1.0.x
El previo lanzamiento estable 1.0.x estaba disponible para:
- procesadores:
- Intel 80386 y compatibles
- Motorola 680x0
- sistemas operativos:
- plataformas beta:
- BeOS, beta
- SunOS, Solaris
- QNX
- Windows CE
[editar] Véase también
- Lazarus un (IDE) (Integrated Development Environment o Entorno Integrado de Desarrollo) para (RAD) (Rapid Application Development o Desarrollo Rápido de Aplicaciones).
[editar] Enlaces externos
- Wikilibros alberga un libro o manual sobre Programación en Pascal.
- Free Pascal
- Lazarus, un RAD para el FPC
- Dev-Pascal
- Ejemplos en Free Pascal
- FPC on Mac -- Status page for FPC to Classic Mac OS ports. (Mac OS X port is done by the FPC Unix crew)
- Introduction to Free Pascal 2.0, by Daniël Mantione, with in-depth introduction to the new version and a bit of its development history.
- CrossFPC - a free toolkit to integrate the Free Pascal compiler, targeting various OS and hardware platforms, into the Borland Delphi IDE. See more about it from this mailing list discussion.
- FPS complete Win32 based IDE for FPC, including debugger (trace, breakpoint and watch windows)