EGL (язык программирования)
Эта статья нуждается в дополнительных цитатах для проверки . ( январь 2017 г. ) |
Разработчик | ИБМ |
---|---|
Лицензия | Публичная лицензия Eclipse |
Веб-сайт | www |
EGL (язык Enterprise Generation), первоначально разработанный IBM и теперь доступный как EDT (инструменты разработки EGL). [1] с открытым исходным кодом проект под общественной лицензией Eclipse (EPL) — это технология программирования, предназначенная для решения задач современной многоплатформенной разработки приложений путем предоставления общего языка и модели программирования для всех языков, инфраструктур и платформ среды выполнения.
Обзор
[ редактировать ]Язык заимствует концепции, знакомые всем, кто использует статически типизированные языки, такие как Java , COBOL , C и т. д. Однако он заимствует концепцию стереотипа из Unified Modeling Language (UML), которая обычно не встречается в статически типизированных языках программирования. Короче говоря, EGL — это универсальный язык разработки приложений более высокого уровня.
Синтаксис EGL аналогичен синтаксису других распространенных языков, поэтому его могут изучать разработчики приложений с аналогичным опытом программирования. Абстракции разработки приложений EGL защищают программистов от технических интерфейсов систем и промежуточного программного обеспечения, позволяя им сосредоточиться на создании бизнес-функциональности. Приложения и сервисы EGL пишутся, тестируются и отлаживаются на уровне исходного кода EGL, и после удовлетворительного функционального тестирования их можно скомпилировать в код COBOL, Java или JavaScript для поддержки развертывания бизнес-приложений, которые могут работать в любой из следующих сред. :
- Платформы с виртуальной машиной Java , такие как Microsoft Windows , Linux и UNIX , например, в контексте контейнера сервлетов Java EE ( IBM WebSphere Application Server , Apache Tomcat , GlassFish )
- IBM System z : CICS Transaction Server , IMS , z/OS Batch, UNIX System Services , WebSphere Application Server, z/VSE , Linux
- IBM Power Systems : IBM i , IBM WebSphere Application Server, Apache Tomcat , интегрированный сервер веб-приложений для i.
- Веб-браузеры, поддерживающие JavaScript, такие как Internet Explorer , Firefox и Safari , для Ajax. веб-приложений с поддержкой
Примеры кода
[ редактировать ]Программа
[ редактировать ]Часть программы EGL — это генерируемая логическая часть с одной точкой входа. Каждая часть программы содержит функцию main(), которая представляет логику, выполняемую при запуске программы. Программа может включать в себя другие функции и иметь доступ к функциям, находящимся за пределами программы. Функция main() может вызывать эти другие функции. Функции программы состоят из набора операторов 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
Записывать
[ редактировать ]Часть записи EGL определяет набор элементов данных. В этом примере запись с именем CustomerRecord определяется шестью полями.
Record CustomerRecord type BasicRecord
customerNumber INT;
customerName STRING;
customerAddr1 STRING;
customerAddr2 STRING;
customerAddr3 STRING;
customerBalance MONEY;
end
В EGL имеется специальный тип записи SQLRecord , который используется для обмена данными с реляционной базой данных.
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
- В этом примере запись «Сотрудник» привязана к таблице (или представлению) с именем «Сотрудник» .
Услуга
[ редактировать ]Часть службы EGL содержит общедоступные функции, к которым можно получить доступ из других приложений или систем. В этом примере определен сервис с двумя функциями.
package com.mycompany.services;
service EmployeeService
function getEmployees() returns(Employee[])
records Employee[0]; // define an empty array of records
get records; // retrieve records from the database
return (records); // return the records
end
function addEmployee(emp Employee in) returns (boolean)
try
add remp;
return (true);
onException (ex AnyException)
return (false);
end
end
end
- В EGL код организован в пакеты (например, Java (язык программирования) )
- Первая функция, getEmployees , возвращает массив записей, заполненный из записей в базе данных.
- Вторая функция, addEmployee, добавляет новую запись в базу данных и возвращает значение true или false в зависимости от того, была ли запись успешно добавлена.
RUIHandler
[ редактировать ]Основным компонентом приложения Rich UI является часть обработчика Rich UI. Эти части генерируются в JavaScript.
package com.mycompany.ui;
import com.mycompany.services.Employee;
import com.mycompany.services.EmployeeService;
import dojo.widgets.DojoGrid;
import dojo.widgets.DojoGridColumn;
handler EmployeeView type RUIhandler { initialUI = [ grid ],
onConstructionFunction = start,
cssFile = "main.css" }
grid DojoGrid { behaviors = [ ], headerBehaviors = [ ], columns = [
new DojoGridColumn { displayName = "First Name", name = "FIRSTNAME" },
new DojoGridColumn { displayName = "Last Name", name = "LASTNAME" },
new DojoGridColumn { displayName = "Salary", name = "SALARY" }
] };
function start()
svc EmployeeService { };
call svc.getEmployees () returning to displayEmployees;
end
function displayEmployees(retResult Employee [ ] in)
grid.data = retResult as any [ ];
end
end
Веб 2.0 с EGL
[ редактировать ]В декабре 2008 года IBM представила новую технологию EGL Rich UI, упрощающую создание Web 2.0 в стиле многофункциональных веб-приложений . Эта технология упрощает разработку, скрывая от разработчика сложности Ajax , JavaScript , REST и SOAP , что позволяет ему сосредоточиться на бизнес-требованиях, а не на базовых технологиях.
Коммерческие продукты
[ редактировать ]Инструменты программирования EGL доступны в виде программ на базе Eclipse. [2] коммерческий продукт, Rational Business Developer , а также в редакции EGL Rational Developer для System z .
EGL является целевым языком для модернизации устаревших приложений из-за сходства семантики языка с процедурными языками и устаревшими языками 4-го поколения :
- набор инструментов преобразования, доступных в продукте Rational Business Developer, обеспечивает автоматическое преобразование из старых и стабилизированных IBM и Informix 4-го поколения. языков
- набор сервисных предложений IBM и дополнительных продуктов (Rational Migration Extension for Natural, Rational Migration Extension for System i, Rational Migration Extension for CA-продуктов) обеспечивают возможность конвертации из Software AG Natural , IBM RPG , CA Cool:Gen и CA. Ideal/Datacom в EGL
Инструменты для поиска в больших базах кода EGL, сравнения отдельных файлов EGL на наличие изменений и обнаружения дублированного кода доступны на сайте Semantic Designs. [3]
Ссылки
[ редактировать ]Дальнейшее чтение
[ редактировать ]- Enterprise Web 2.0 с EGL, ISBN 978-1-58347-091-6 .
- Разработка приложений Web 2.0 с помощью EGL для IBM i, ISBN 978-1-58347-089-3 .