El lenguaje de scripting de perfiles ( PSL ) es un superconjunto del lenguaje de programación MUMPS que añade características de lenguaje orientado a objetos . Actualmente lo desarrolla Fidelity National Information Services (en adelante, FIS).
Historia
PSL es un lenguaje que implementa conceptos orientados a objetos , como clases, métodos, encapsulación, herencia y tipado de datos fuerte, como extensiones del lenguaje MUMPS. PSL fue concebido inicialmente en diciembre de 1998 por Frank Sanchez, entonces presidente de Sanchez Computer Associates, como una herramienta de transformación que podría realizar ingeniería inversa de una aplicación bancaria muy grande y compleja (Fidelity National Information Services 'Profile'), escrita predominantemente en MUMPS. [ 1 ]
Frank Sanchez desarrolló la semántica, la sintaxis, el analizador sintáctico, el compilador y el optimizador originales del lenguaje, la interfaz de base de datos, la vinculación de esquemas, las clases intrínsecas y los métodos durante las vacaciones de Navidad de 1998 y principios de 1999. Contó con la ayuda de Bob Chiang, ya fallecido, jefe del desarrollo de la herramienta Data-Qwik en Sanchez, y de Mark Spier, desarrollador sénior de software en Sanchez en aquel entonces, para el desarrollo de las primeras versiones comerciales (versiones 1 y 2). Sanchez Computer Associates (SCAI) fue adquirida por Fidelity National Financial (FNF), ahora FIS , en abril de 2004. En versiones posteriores, el compilador ha sido mantenido y mejorado significativamente por Frans Witte, líder técnico sénior en FIS, y Dan Russell, anteriormente jefe de desarrollo tecnológico en Sanchez y ahora consultor técnico sénior remoto para FIS. Frans y Dan se han centrado en la implementación de las características del lenguaje independientes de la base de datos y, más recientemente, en el código fuente Java.
conceptos del lenguaje
Los conceptos iniciales del lenguaje incluían la capacidad de vincular el código fuente a un esquema de base de datos que generaba clases de acceso a datos dinámicas (anticipándose a la generación de clases persistentes similares en Java ) y métodos de base de datos que podían generarse como código en variables globales de MUMPS o en un sistema de gestión de bases de datos relacionales (RDBMS) comercial . Las clases de acceso a datos de PSL se identifican en el código fuente como Record<classes>.
PSL interpreta el código MUMPS heredado, aunque algunos comandos heredados (como GO, NEW y KILL) pueden deshabilitarse o marcarse como obsoletos (generando advertencias del compilador). Las referencias directas a variables globales de MUMPS también pueden deshabilitarse o marcarse como obsoletas. Numerosas directivas del compilador PSL (por ejemplo, #IF/#ELSE, #ACCEPT) también se añadieron al lenguaje PSL, así como bloques y comentarios al estilo Java, semántica moderna de manejo de errores y espacios en blanco. Dos elementos del lenguaje MUMPS se eliminaron inicialmente (bloques al estilo M y goto label+offset) ya que no podían admitirse dentro del manejo del ámbito de objetos de PSL.
PSL permite definir una clase como intrínseca o extrínseca. Las clases extrínsecas implementan definiciones de clase, método y variables de instancia consistentes con los lenguajes orientados a objetos comunes, y se generan en código compilado (accesible en tiempo de ejecución). Por otro lado, las clases y métodos intrínsecos se implementan como extensiones del propio compilador PSL y se ejecutan en tiempo de compilación para generar código en tiempo de ejecución. Esta característica puede generar código altamente optimizado o especializado según las condiciones de compilación o del programa. Esta capacidad se consideró fundamental para generar código que optimizara tanto una base de datos global MUMPS como múltiples sistemas de gestión de bases de datos relacionales comerciales a partir del mismo código fuente PSL.
Lanzamientos
El lanzamiento inicial de PSL (originalmente llamado M++) tuvo lugar en el verano de 1999, como parte de la versión 6.2 de Profile. En ese lanzamiento, menos del 5 % del código MUMPS se convirtió a PSL, aunque el nuevo desarrollo se centró principalmente en el código fuente de PSL y se estaba llevando a cabo un análisis para la ingeniería inversa a gran escala. La conversión de la aplicación Profile de MUMPS a PSL se completó al 100 % en 2006, con el lanzamiento de la versión 7.0 de Profile. Esta versión 7.0 fue también la primera versión comercial de la aplicación que podía ejecutarse tanto en una base de datos GT.M MUMPS como en una base de datos Oracle 9 , utilizando el código fuente GT.M MUMPS como destino de PSL.
Actualmente, PSL continúa mejorándose activamente para admitir IBM DB2 como base de datos de destino y para generar, opcionalmente, código GT.M MUMPS o Java a partir del mismo código fuente de PSL. Además, PSL cuenta con el respaldo de un entorno de desarrollo moderno basado en Eclipse , con gestión integrada de esquemas y código, y numerosos complementos interactivos. Jim Joyce, desarrollador sénior de I+D en FIS, ha sido responsable de gran parte de la visión y el desarrollo del IDE.
Usos
A junio de 2011, PSL seguía siendo el lenguaje de código fuente del sistema bancario FIS Profile, implementado en 26 países y más de 200 instituciones, incluyendo algunos de los bancos más grandes del mundo. Si bien en el futuro es posible implementar Java y sistemas de gestión de bases de datos relacionales comerciales, actualmente el 100% de las implementaciones se realizan sobre la base de datos y el lenguaje de destino GT.M MUMPS, con la excepción de una única implementación de un sistema de gestión de bases de datos Oracle.
Véase también
Referencias
- ↑ "Guía de programación del lenguaje de scripting de perfiles" . www.netfort.cz . Consultado el 24 de octubre de 2025 .
Enlaces externos
- PIP en SourceForge
- Guía de programación de PSL (versión antigua distribuida con PIP)
- Ayuda interactiva de SQL
- Descripción general de las herramientas web del perfil
- FIS (empresa)
- Familia de lenguajes de programación MUMPS
- Implementaciones de MUMPS
