EGL

EGL (англ. 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).

Литература