Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EDT:Language Overview"

Line 1: Line 1:
 
= Introduction  =
 
= Introduction  =
  
This essay gives an overview of the language. 
+
This essay gives an overview of the language.   
  
== Why EGL?  ==
+
== Compilation <br> ==
  
Software languages have evolved as execution environments became more complex:
+
In relation to any modern programming language, an automated process converts source code from a relatively abstract form to a more concrete, platform-specific one. For example, the logic might be compiled into machine code, or into byte codes that can be read by a virtual machine.&nbsp;
  
*At first, each of the machine languages supported a specific type of machine. The focus of developer concern was a hardware event such as moving data from an area of memory to a register. The task involved an error-prone coding of 1's and 0's.
+
[ summarize typical compilation.&nbsp;&nbsp;identify how the EGL tech is different and why. ]
*With assembly language, the focus of developer concern became a set of commands that hid some of the complexity of machine language.
+
*A third-generation language such as COBOL supported many types of models, but a given variant of the language was and is specific to an operating system. The focus of developer concern is a set of office-like events such as transferring data from one file to another.
+
*Java supports many operating systems. The focus of developer concern is a set of objects and their super-types. This orientation allows for greater reuse over time, as inheritance enables classes written today to process objects of classes that are yet unknown.
+
  
Many of the changes from one kind of programming languages to the next have involved a formula that you might find apt: abstraction plus transform. In other words, a more general, composite statement such as COMPUTE is input to a process that reformats that relatively general construct into a set of more specific statements. Ultimately, the original statement is transformed into the machine language that is appropriate for a specific type of machine.
+
= Types and values  =
  
Abstraction plus transform might sound like an ideal without business impact, but it has the following benefits: decreased development code, increased software quality, and increased software longevity. [1] These benefits were found during the history just outlined, as software was written for a machine of a specific type; and later, for one or another operating system; and later still, for multiple operating systems.  
+
In general usage, a '''type''' such as integer or string defines a set of values and a set of operations that can be applied to those values. For example, integers are whole numbers that can be added, subtracted, and so forth; and the number 5 is a value of that type.
  
== The way forward  ==
+
The meaning is much the same in programming, where every value is “of a type.” The type defines the structure of the value and the set of operations that can be applied to the value.
  
Businesses are facing even greater complexity in&nbsp;runtime environments. Not only do web browsers represent an operating system on their own, but the server-side systems that transmit data to browsers have platforms such as Java Enterprise Edition, and within platforms, frameworks such as JavaServer Faces.&nbsp;
+
== Reference and value ==
  
Computer languages are typically a step behind these increases in complexity. Given the history and the current need, here's the question: if abstraction plus transform benefited business in the past, could a new implementation of the same formula be beneficial now? It's a safe bet.
+
In general, types are of two kinds, reference and value:
  
If the new technology is extensible, a company also can rely on it to shield the business from the effects of future change. And if the technology is open source, the continued support of practitioners and tool-makers is assured.  
+
*A '''reference type''' defines an '''object''', which is a value in a memory area that was allocated specifically to hold a value of the type. The object is referenced from some logic and is an instance of the type. In this case, the words ''value'' and ''instance'' are interchangeable.
 +
*A '''value type'''defines a value that is embedded in an object.
  
== Scope of EGL ==
+
Also in general, a '''field declaration''' is a coded statement that has two effects: <br>
  
==  ==
+
*Declares a value of a type.
 +
*Names a memory area that provides access to the value. If the value is based on a reference type, the memory area holds an address or other detail that points to the value. If the value is based on a value type, the memory area contains the value.
  
== Compilation <br> ==
+
Turning now to the syntax of EGL, consider the following field declarations:<br><br><br>
 
+
In relation to any modern programming language, an automated process converts source code from a relatively abstract form to a more concrete, platform-specific one. For example, the logic might be compiled into machine code, or into byte codes that can be read by a virtual machine.&nbsp;
+
 
+
[ summarize typical compilation, identify how the EGL tech is different, and why ]
+
 
+
= Types and values  =
+

Revision as of 14:27, 11 October 2011

Introduction

This essay gives an overview of the language. 

Compilation

In relation to any modern programming language, an automated process converts source code from a relatively abstract form to a more concrete, platform-specific one. For example, the logic might be compiled into machine code, or into byte codes that can be read by a virtual machine. 

[ summarize typical compilation.  identify how the EGL tech is different and why. ]

Types and values

In general usage, a type such as integer or string defines a set of values and a set of operations that can be applied to those values. For example, integers are whole numbers that can be added, subtracted, and so forth; and the number 5 is a value of that type.

The meaning is much the same in programming, where every value is “of a type.” The type defines the structure of the value and the set of operations that can be applied to the value.

Reference and value

In general, types are of two kinds, reference and value:

  • A reference type defines an object, which is a value in a memory area that was allocated specifically to hold a value of the type. The object is referenced from some logic and is an instance of the type. In this case, the words value and instance are interchangeable.
  • A value typedefines a value that is embedded in an object.

Also in general, a field declaration is a coded statement that has two effects:

  • Declares a value of a type.
  • Names a memory area that provides access to the value. If the value is based on a reference type, the memory area holds an address or other detail that points to the value. If the value is based on a value type, the memory area contains the value.

Turning now to the syntax of EGL, consider the following field declarations:


Copyright © Eclipse Foundation, Inc. All Rights Reserved.