EGLEGL (англ. Enterprise Generation Language) — современный высокоуровневый язык программирования для создания бизнес-приложений. Разработан IBM. EGL схож по синтаксису с другими языками программирования для упрощения обучения. Программы на EGL обычно создаются и отлаживаются в виде EGL-программы, а затем могут быть скомпилированы в COBOL, Java или JavaScript. Примеры программКаждая программа EGL имеет единственную точку входа: функцию main(). Функции EGL состоят из операторов EGL, переменных и констант. Программа, выводящая строку на экран: Program HelloWorld
const GREETING string = "Hello, ";
function main()
myName string = "John";
sayHello(myName);
end
function sayHello(name String in)
SysLib.writeStdOut(GREETING + name + "!");
end
end
Наборы различных данных могут быть объединены в Запись (Record). Пример записи CustomerRecord с шестью полями: Record CustomerRecord type BasicRecord
customerNumber INT;
customerName STRING;
customerAddr1 STRING;
customerAddr2 STRING;
customerAddr3 STRING;
customerBalance MONEY;
end
Для обмена данными с СУБД, EGL имеет специальный тип записей, называемые SQLRecord. В следующем примере запись Employee связывается с SQL-таблицей Employee: record Employee type sqlRecord { tableNames =[["Employee"]
], keyItems =[EMPNO]}
EMPNUMBER string{ column = "EMPNO", maxLen = 6};
FIRSTNME string{ sqlVariableLen = yes, maxLen = 12};
MIDINIT string{ isSqlNullable = yes, maxLen = 1};
LASTNAME string{ sqlVariableLen = yes, maxLen = 15};
DEPT string{ column = "WORKDEPT", isSqlNullable = yes, maxLen = 3};
PHONENO string{ isSqlNullable = yes, maxLen = 4};
HIREDATE date{ isSqlNullable = yes};
end
Сервисами (Service) в EGL называют наборы функций, которыми могут пользоваться другие приложения. В примере определен сервис с двумя функциями: package com.mycompany.services;
service EmployeeService
function getEmployees() returns(Employee[])
records Employee[0]; // определяет пустой массив записей
get records; // запрашивает записи из СУБД
return (records); // возвращает записи
end
function addEmployee(emp Employee in) returns (boolean)
try
add remp;
return (true);
onException (ex AnyException)
return (false);
end
end
end
Код в EGL организуется в пакеты (package). Литература
|