EGL (Enterprise Generation Language), originally developed by IBM and now available as the EDT (EGL Development Tools) 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. 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: Platforms with a Java virtual machine, such as Microsoft Windows, Linux, and UNIX, for example in the context of a Java EE servlet container (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, Integrated Web Application Server for i Web browsers supporting JavaScript, such as Internet Explorer, Firefox, and Safari, for Ajax rich web applications 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