Articulo de referencia

Pascal inteligente

Smart Pascal es un lenguaje de programación Object Pascal derivado de Delphi Web Script y adaptado para Smart Mobile Studio para generar código máquina JavaScript comercial . Co...

Smart Pascal es un lenguaje de programación Object Pascal derivado de Delphi Web Script y adaptado para Smart Mobile Studio para generar código máquina JavaScript comercial . Como lenguaje de desarrollo rápido de aplicaciones (RAD), incluye una biblioteca de clases y componentes. El compilador de Smart Pascal es un compilador de código fuente a código fuente que genera aplicaciones independientes del servidor compatibles con HTML5 . Las aplicaciones Smart compiladas se pueden ejecutar en un navegador moderno compatible con HTML5 . Un programa compilado se suele integrar en un contenedor DIV o bien se configura para que ocupe toda la pantalla.

Historia

Smart Mobile Studio, diseñado por Jon Lennart Aasenden y Eric Grange, es publicado por la empresa de software Optimale Systemer. Utiliza Delphi Web Script, un motor de scripting de código abierto , para la verificación y el análisis sintáctico. El 18 de mayo de 2012, Optimale Systemer anunció la adquisición de los derechos de un generador de código personalizado, creado por Eric Grange, el responsable del mantenimiento de Delphi Web Script, a su empresa Creative IT. Eric Grange introdujo las clases anónimas en Smart Pascal a partir de la versión 1.0.

Prototipo

El primer prototipo se lanzó el 20 de diciembre de 2011. El proyecto recibió una amplia cobertura de dos páginas en la revista Blaise Pascal Magazine . La biblioteca de tiempo de ejecución se amplió para incluir soporte para Remobjects SDK y Embarcadero Datasnap. A partir de la versión 2.0, Smart Pascal también fue compatible con NodeJS , Web Workers y la plataforma de microcontroladores Espruino .

Diferencias lingüísticas

expresiones de propiedad

En Object Pascal, una propiedad es un valor expuesto que puede estar vinculado a un campo de clase o a un método miembro de la clase. El usuario desconoce si la propiedad está vinculada explícitamente a un campo o a un método de escritura. Smart Pascal introduce una técnica denominada "expresiones de propiedad". Esta permite al usuario programar la lógica de lectura y escritura como parte de las declaraciones de propiedad.

El IDE Smart Pascal crea aplicaciones modulares orientadas a objetos diseñadas para ejecutarse en un documento HTML . Se pueden agregar controles a ventanas independientes y conectar eventos de código para responder a la actividad del usuario. Smart Mobile Studio incluye un diseñador visual de formularios y un editor de propiedades . La biblioteca de tiempo de ejecución de Smart Pascal ofrece soporte completo para la creación de estilos CSS3 , interpolación , sincronización de redibujado de pantalla, sprites 2D y 3D con GPU y WebGL .

Acceso a la base de datos

Se admiten los motores WebSQL , IndexedDB y la API WebStorage . Smart IDE también permite el acceso a Embarcadero DataSnap, un marco de acceso remoto a datos. El uso de estas bibliotecas de importación permite a las aplicaciones Smart Pascal leer, escribir y actualizar conjuntos de datos remotos. Smart Pascal está escrito en Embarcadero Delphi . La biblioteca de tiempo de ejecución incluye clases para RemObjects SDK , un marco de llamadas a procedimientos remotos similar a Microsoft RPC . JSON RPC y WebSockets también forman parte de la biblioteca de clases.

Se añadieron operaciones con arrays a la sintaxis de Smart Pascal para una mejor adaptación a JavaScript. Smart Pascal incluye una función integrada para todos los arrays, siempre que los tipos de datos coincidan.

Clases anónimas

En Object Pascal tradicional, todas las clases heredan de un tipo raíz llamado TObject . Esto también ocurría en Delphi Web Script. Para importar clases JavaScript, era necesario modificar la dependencia de TObject como raíz de todos los tipos de clase. Esto permite al usuario definir una clase como externa , y así crear y usar clases escritas en JavaScript que coincidan con la interfaz, junto con las escritas en Pascal. Las clases anónimas también pueden usarse como objetos ligeros.

Soporte limitado

El método anónimo se introdujo en Smart Pascal para mejorar la compatibilidad con JavaScript. En Pascal nativo, los usuarios disponen de procedimientos de clase y procedimientos ordinarios . La única diferencia entre ambos es que, si el usuario desea referenciar un método de clase, debe añadir "of object" a su declaración. El compilador no permite referenciar un método de objeto sin que "of object" esté claramente definido.

Las clases parciales son una característica que aún no se ha incorporado al estándar Object Pascal. Smart Pascal admite dos formatos de declaración de clases parciales: la sintaxis RemObjects Oxygene Pascal y la variante "type mytype = partial class(ancestor type)".

En Pascal, un conjunto es una colección de elementos del mismo tipo. La sintaxis de Smart Pascal actualmente solo admite conjuntos de enumeraciones con el operador "in" y los métodos "include(aSet, aValue)" o "exclude(aSet, aValue)". Smart Pascal no admite genéricos . La sintaxis original de Delphi Web Script de la que deriva Smart Pascal era compatible con Delphi 7. DWScript admite parcialmente la información de tipo en tiempo de ejecución , incluida la capacidad de enumerar propiedades y miembros de clase. El compilador JavaScript de Smart Pascal implementa RTTI si se define la opción "Emitir información RTTI" en las opciones del compilador del proyecto.

Fuentes

  • El repositorio de código fuente de Delphi Web Script
  • Blog de programación de Jon Lennart Aasenden
  • Sitio web de Eric Grange

Referencias externas

  • Artículo sobre cómo usar Smart Pascal con Cordova (anteriormente: Phonegap)