Профиль Scripting Language ( PSL ) является надстройкой из MUMPS языка программирования , который добавляет объектно-ориентированный язык . В настоящее время он разработан Fidelity National Information Services (далее FIS).
Парадигма | Процедурный |
---|---|
Разработано | Фрэнк Санчес |
Впервые появился | 1998 г. |
Операционные системы | Кроссплатформенность |
Под влиянием | |
Швабры |
История
PSL - это язык, реализующий объектно-ориентированные концепции, такие как классы, методы, инкапсуляция, наследование и строгая типизация данных, как расширения языка MUMPS. Первоначально PSL был задуман в декабре 1998 года Фрэнком Санчесом, тогдашним президентом Sanchez Computer Associates, как инструмент преобразования, позволяющий осуществлять обратный инжиниринг очень большого и сложного банковского приложения (Fidelity National Information Services 'Profile'), которое было написано преимущественно на MUMPS.
Франк Санчес разработал семантику исходного языка, синтаксис, синтаксический анализатор, компилятор и оптимизатор, интерфейс базы данных, привязку схемы, внутренние классы и методы во время рождественских праздников в 1998 году и в начале 1999 года. Ему помогали в разработке первых коммерческих выпусков (версия 1 - 2) покойным Бобом Чиангом, руководителем отдела разработки инструментов Data-Qwik в Sanchez, и Марком Спиером, в то время старшим разработчиком программного обеспечения в Sanchez. Sanchez Computer Associates (SCAI) была приобретена Fidelity National Financial (FNF), ныне FIS , в апреле 2004 года. В более поздних версиях компилятор поддерживался и значительно улучшался Франсом Витте, старшим техническим руководителем FIS, и Дэном Расселом, ранее руководитель отдела развития технологий в Sanchez, а теперь удаленный старший технический консультант FIS. Франс и Дэн сосредоточились на реализации функций языка, не зависящих от базы данных, а в последнее время - на исходном целевом коде Java.
Языковые концепции
Первоначальные языковые концепции включали возможность привязать исходный код к схеме базы данных, которая генерирует динамические классы доступа к данным (вытесняя аналогичную генерацию постоянных классов в Java ) и методы базы данных, которые могут быть сгенерированы кодом либо в глобальных объектах MUMPS, либо в коммерческой RDMS . Классы доступа к данным PSL обозначены в исходном коде как Record
PSL интерпретирует устаревший код MUMPS, хотя некоторые устаревшие команды (такие как GO, NEW и KILL) можно отключить или пометить как устаревшие (генерируя предупреждения компилятора). Прямые ссылки на глобальные объекты MUMPS также могут быть отключены или исключены. К языку PSL были добавлены многочисленные директивы компилятора PSL (например, # IF / # ELSE, #ACCEPT), а также блоки и комментарии в стиле Java, современная семантика обработки ошибок и пробелы. Изначально были исключены два языковых элемента MUMPS (блоки в стиле M и метка goto + смещение), поскольку они не могли поддерживаться в рамках обработки области объекта PSL.
PSL позволяет определять класс как внутренний или внешний. Внешние классы реализуют определения переменных класса, метода и экземпляра, согласующиеся с общими языками объектно-ориентированного программирования, и генерируются в скомпилированный код (доступный во время выполнения). С другой стороны, внутренние классы и методы реализованы как расширения самого компилятора PSL и выполняются во время КОМПИЛЯЦИИ для генерации кода времени выполнения. Эта функция может генерировать сильно оптимизированный или специализированный код в зависимости от времени компиляции или условий программы. Эта возможность считалась критически важной для возможности генерировать код, оптимизирующий как глобальную базу данных MUMPS, так и несколько коммерческих RDMS из одного источника PSL.
Релизы
Первоначальный выпуск PSL (первоначально называвшийся M ++) был выпущен летом 1999 года как часть версии профиля 6.2. В этом выпуске менее 5% кода MUMPS было преобразовано в PSL, хотя новая разработка была преимущественно в исходном коде PSL, и в настоящее время проводится анализ для широко распространенного обратного проектирования. Преобразование приложения Profile из MUMPS в PSL было на 100% завершено в 2006 году с выпуском версии Profile 7.0. Версия профиля 7.0 также была первой коммерческой версией приложения, которую можно было нацелить на работу либо в базе данных GT.M MUMPS, либо в базе данных Oracle 9 с исходным кодом GT.M MUMPS в качестве цели PSL.
В настоящее время PSL продолжает активно улучшаться для поддержки IBM DB2 в качестве целевой базы данных и для возможной генерации целевого кода GT.M MUMPS или Java из того же исходного кода PSL. Кроме того, PSL поддерживается современной средой разработки на основе Eclipse с интегрированной схемой и управлением кодом, а также многочисленными интерактивными надстройками. Джим Джойс, старший разработчик НИОКР в FIS, отвечал за большую часть видения и разработки IDE.
Использует
По состоянию на июнь 2011 года PSL остается языком исходного кода для банковской системы FIS Profile, развернутой в 26 странах и более чем 200 учреждениях, включая некоторые из крупнейших банков мира. Хотя в будущем возможно развертывание Java и коммерческих RDMS, сегодня 100% развертываний выполняются на целевом языке и базе данных GT.M MUMPS, за исключением единственного развертывания СУБД Oracle.