Применение языка Lua при создании КМИС

Дата публикации - 01/27/2009
Компания «Комплексные медицинские информационные системы» начала использование языка Lua при разработке некоторых модулей своего основного программного продукта – «Карельской медицинской информационной системы».
Lua — мощный язык, предоставляющий простое решение проблем при профессиональной разработке программного обеспечения. Главное превосходство Lua над остальными языками это его компактный, эффективный размер. Этот размер, а также простота интеграции и расширения, превращает Lua в практичный язык, достойный изучения.
Разработкой Lua руководит Roberto Ierusalimschy из Папского Католического Университета Рио-де-Жанейро в Бразилии. Последняя версия (5.1.2) доступна под лицензией MIT. Lua на 99% написана на ANSI C. Это главная цель разработки — сделать Lua компактным, эффективным и простым для интеграции в другие C/C++ программы. Разработчики игр (таких как World of Warcraft, разрабатываемой Blizzard Entertainment) в большой мере используют Lua как язык расширений и конфигурации.

Одной из особенностью данного языка является его расширяемость, за счет добавления функционала в коде программы. С легкостью можно например сделать функцию в C++ или Delphi и записать ее в таблицу функций Lua. В таком случае, новая функция будет доступна внутри языка. Lua легко встраивается в сборку проекта за счет ANSI C кода, который требует немногого для конфигурации и не зависит от внешних библиотек (сверх рантайм библиотеки C). Так что можно добавить код интерпретатора Lua прямо при сборке проекта. Обзор мэйкфайлов показывает все полезные настройки для конфигурации. Настроить Lua можно для буквально любой платформы, которая поддерживает разработку на ANSI C.

Lua использует мощную концепцию таблиц метаданных, что, помимо всего прочего, помогает ему преодолеть окончательный отрыв от объектно-ориентированного программирования (по-прежнему без замены VM). Таблица метаданных это обычная таблица в Lua, которая присоединена к данной таблице с помощью встроенной функции setmetatable. Lua использует таблицы метаданных для нескольких специальных функций контроля работы связанных таблиц.

В стандартной версии, включены функции для работы со строками, вводом/выводом (файлы), математические функции, работа с таблицами. Подключается язык очень просто к любому приложению за счет всего-лишь нескольких функций.

Краткие возможности Lua можно представить по этой публикации: http://netsago.org/ru/docs/1/4/

В данное время язык Lua используется при разработке новой версии подсистемы статистики. С его помощью создается новая версия модуля интеграции статистики КМИС с другими информационным системами. За счет развитых возможностей Lua разработчики КМИС создают простое и гибкое решение, которое позволяет осуществлять интеграцию с самыми различными информационными системами и базами данных, в том числе несовместимыми с КМИС на уровне архитектуры базы данных или применяемых справочников. Все эти проблемы эффективно обходятся в КМИС на основе специального программного решения, использующего Lua для своей работы.