To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
English Articles
Improved in 24 Hours
Added in 24 Hours
Languages
Recent
Show all languages
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

EGL (programming language)

From Wikipedia, the free encyclopedia

EGL (Enterprise Generation Language), originally developed by IBM and now available as the EDT (EGL Development Tools)[1] open source project under the Eclipse Public License (EPL), is a programming technology designed to meet the challenges of modern, multi-platform application development by providing a common language and programming model across languages, frameworks, and runtime platforms.

YouTube Encyclopedic

  • 1/3
    Views:
    1 912
    5 338
    676
  • goroutines
  • Introduction to Web Programming with Go
  • Data Structures in Golang Ep. 7 - Binary Search Tree's Speed

Transcription

Overview

The language borrows concepts familiar to anyone using statically typed languages like Java, COBOL, C, etc. However, it borrows the concept of stereotype from Unified Modeling Language (UML) that is not typically found in statically typed programming languages. In a nutshell, EGL is a higher-level, universal application development language.

EGL is similar in syntax to other common languages so it can be learned by application developers with similar previous programming background. EGL application development abstractions shield programmers from the technical interfaces of systems and middleware allowing them to focus on building business functionality. EGL applications and services are written, tested and debugged at the EGL source level, and once they are satisfactorily functionally tested they can be compiled into COBOL, Java, or JavaScript code to support deployment of business applications that can run in any of the following environments:

Code examples

Program

An EGL Program part is a generatable logic part with one entry point. Each Program part contains a main() function, which represents the logic that runs at program start up. A program can include other functions and can access functions that are outside of the program. The function main() can invoke those other functions. Program functions are composed of a set of EGL statements, variables, and constants.

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

An EGL Record part defines a set of data elements. In this example, a record with the name CustomerRecord is defined with 6 fields.

Record CustomerRecord type BasicRecord
	customerNumber INT;            
	customerName STRING;
	customerAddr1 STRING;
	customerAddr2 STRING;
	customerAddr3 STRING;
	customerBalance MONEY;
end

EGL has a specialized type of record called SQLRecord that is used to exchange data with a relational database.

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
  • In this example, the record Employee is bound to a table (or view) named Employee.

Service

An EGL Service part contains public functions meant to be accessed from other applications or systems. In this example, a service with two functions is defined.

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
  • In EGL, code is organized in packages (like Java (programming language))
  • The first function, getEmployees, returns an array of records populated from the records in a database.
  • The second function, addEmployee adds a new record to the database and returns a true or false depending on whether the record was added successfully.

RUIHandler

The main component of a Rich UI application is a Rich UI handler part. These parts are generated into 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

Web 2.0 with EGL

In December 2008, IBM introduced new technology, EGL Rich UI, to simplify the creation of Web 2.0-style rich web applications. This technology simplifies development by hiding the complexities of Ajax, JavaScript, REST, and SOAP from the developer, which enables them to focus on the business requirement and not on the underlying technologies.

Commercial products

EGL programming tools are available as an Eclipse-based[2] commercial product, the Rational Business Developer and also in the EGL edition of Rational Developer for System z.

EGL is a target language for modernization of legacy applications because of the language semantics affinity with procedural languages and legacy 4th generation languages:

Tools for searching large EGL code bases, comparing individual EGL files for changes, and detecting duplicated code are available from Semantic Designs[3]

References

Further reading

  • Enterprise Web 2.0 with EGL, ISBN 978-1-58347-091-6.
  • Developing Web 2.0 Applications with EGL for IBM i, ISBN 978-1-58347-089-3.

External links

This page was last edited on 20 November 2023, at 14:33
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.