Lenguaje de scripting de perfil


Profile Scripting Language ( PSL ) es un superconjunto del lenguaje de programación MUMPS que agrega características de lenguaje orientado a objetos . Actualmente es desarrollado por Fidelity National Information Services (en adelante FIS).

PSL es un lenguaje que implementa conceptos orientados a objetos como clases, métodos, encapsulación, herencia y tipificación de datos sólida 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 podía aplicar ingeniería inversa a una aplicación bancaria muy grande y compleja ('Perfil' de Fidelity National Information Services) que estaba escrita predominantemente en MUMPS.

Frank Sanchez desarrolló la semántica, la sintaxis, el analizador, el compilador y el optimizador del lenguaje original, la interfaz de la base de datos, el enlace de esquemas, las clases intrínsecas y los métodos durante las vacaciones de Navidad de 1998 y principios de 1999. Fue asistido en el desarrollo de los lanzamientos comerciales iniciales (versión 1 - 2) por el difunto Bob Chiang, jefe de desarrollo de herramientas Data-Qwik en Sanchez, y Mark Spier, desarrollador de software sénior de Sanchez en ese momento. 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, exjefe de desarrollo tecnológico en Sanchez y ahora consultor técnico sénior remoto de FIS. Frans y Dan se han centrado en implementar las funciones independientes de la base de datos del lenguaje y, más recientemente, el código fuente de Java.

Los conceptos iniciales del lenguaje incluían la capacidad de vincular el código fuente a un esquema de base de datos que genera clases dinámicas de acceso a datos (que se adelantan a la generación de clases persistentes similares en Java ) y métodos de base de datos que podrían generarse en código en MUMPS globales o en un RDMS 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) se pueden deshabilitar o marcar como obsoletos (generando advertencias del compilador). Las referencias directas a MUMPS globales también se pueden deshabilitar o desaprobar. Numerosas directivas del compilador de PSL (p. ej., #IF/#ELSE, #ACCEPT) también se agregaron al lenguaje de PSL, al igual que bloques y comentarios de estilo Java, semántica moderna de manejo de errores y espacios en blanco. Inicialmente, se eliminaron dos elementos del lenguaje MUMPS (bloques de estilo M e ir a etiqueta+desplazamiento) ya que no se podían admitir dentro del manejo del alcance del objeto PSL.

PSL permite definir una clase como intrínseca o extrínseca. Las clases extrínsecas implementan definiciones de variables de Clase, Método e Instancia consistentes con los lenguajes OO comunes, y se generan en código compilado (al que se accede en tiempo de ejecución). Las clases y métodos intrínsecos, por otro lado, se implementan como extensiones del propio compilador PSL y se ejecutan en tiempo de COMPILACIÓN para generar código de tiempo de ejecución. Esta función puede generar código muy optimizado o especializado según el tiempo de compilación o las condiciones del programa. Esta capacidad se consideró fundamental para la capacidad de generar código que optimizara tanto una base de datos global de MUMPS como varios RDMS comerciales de la misma fuente de PSL.