Amiga E is a
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
created by Wouter van Oortmerssen on the
Amiga
Amiga is a family of personal computers produced by Commodore International, Commodore from 1985 until the company's bankruptcy in 1994, with production by others afterward. The original model is one of a number of mid-1980s computers with 16-b ...
computer. The work on the language started in 1991 and was first released in 1993. The original incarnation of Amiga E was being developed until 1997, when the popularity of the Amiga platform dropped significantly after the bankruptcy of Amiga intellectual property owner
Escom AG.
According to Wouter van Oortmerssen:
"It is a general-purpose programming language, and the Amiga implementation is specifically targeted at programming system applications. ..ref name=":0">"
In his own words:
"Amiga E was a tremendous success, it became one of the most popular programming languages on the Amiga."
Overview
Amiga E combines features from several languages but follows the original
C programming language
C (''pronounced'' '' – like the letter c'') is a general-purpose programming language. It was created in the 1970s by Dennis Ritchie and remains very widely used and influential. By design, C's features cleanly reflect the capabilities of ...
most closely in terms of basic concepts. Amiga E's main benefits are fast compilation (allowing it to be used in place of a
scripting language
In computing, a script is a relatively short and simple set of instructions that typically automation, automate an otherwise manual process. The act of writing a script is called scripting. A scripting language or script language is a programming ...
), very readable
source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
, flexible
type system
In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a ''type'' (for example, integer, floating point, string) to every '' term'' (a word, phrase, or other set of symbols). Usu ...
, powerful
module system,
exception handling
In computing and computer programming, exception handling is the process of responding to the occurrence of ''exceptions'' – anomalous or exceptional conditions requiring special processing – during the execution of a program. In general, an ...
(not
C++ variant), and
Object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
.
Amiga E was used to create the core of the popular Amiga graphics software
Photogenics.
"Hello, World!" example
A
"Hello, World!" program
A "Hello, World!" program is usually a simple computer program that emits (or displays) to the screen (often the Console application, console) a message similar to "Hello, World!". A small piece of code in most general-purpose programming languag ...
in Amiga E looks like this:
History
1993: The first public release of Amiga E; the first release on
Aminet was in September, although the programming language source codes were published on the Amiga E mailing list at least since May.
1997: The last version of Amiga E is released (3.3a).
1999: Unlimited
compiler
In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
executable of Amiga E is released.
1999: Source code of the Amiga E compiler in
m68k
The Motorola 68000 series (also known as 680x0, m68000, m68k, or 68k) is a family of 32-bit complex instruction set computer (CISC) microprocessors. During the 1980s and early 1990s, they were popular in personal computers and workstations and w ...
assembler is released under the
GPL.
Implementations and derivatives
Discontinued
Amiga E
The first compiler. It was written by Wouter van Oortmerssen in m68k assembler. It supports tools that are written in E. The compiler generates 68000
machine code
In computer programming, machine code is computer code consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). For conventional binary computers, machine code is the binaryOn nonb ...
directly.
:*Platforms:
AmigaOS
AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions ...
and compatibles.
:*Targets: Originally AmigaOS with 68000
CPU, but has modules that can handle
68060 architecture.
:*Status: Stable, mature, discontinued, source available,
freeware
Freeware is software, often proprietary, that is distributed at no monetary cost to the end user. There is no agreed-upon set of rights, license, or EULA that defines ''freeware'' unambiguously; every publisher defines its own rules for the free ...
.
CreativE
It was created by Tomasz Wiszkowski. It is based on the
GPL sources of Amiga E and adds many extensions to the compiler.
:*Platforms: AmigaOS and compatibles.
:*Targets: Like Amiga E, plus some limited support for the last generations of m68k CPUs.
:*Status: Stable, mature, discontinued in 2001, source available, freeware.
PowerD
It was created by Martin Kuchinka, who cooperated with Tomasz Wiszkowski in the Amiga development group "The Blue Suns." It is derived from the Amiga E and CreativE languages but is incompatible with the former due to syntax changes.
:*Platforms: AmigaOS and compatibles.
:*Targets: AmigaOS 3.0 or newer; at least
68020 CPU+
FPU or
PowerPC
PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
(PPC); and 4MB of
RAM.
:*Status: Stable, mature,
closed source
Proprietary software is software that grants its creator, publisher, or other rightsholder or rightsholder partner a legal monopoly by modern copyright and intellectual property law to exclude the recipient from freely sharing the software or modi ...
, freeware. The project has been dormant since 2010.
YAEC
Written from scratch in Amiga E by Leif Salomonsson and published in 2001. It uses an external assembler and linker. The project was abandoned in favor of ECX.
:*Platforms: AmigaOS and compatibles.
:*Targets: AmigaOS 3.0 with 68020 CPU and FPU.
:*Status: Obsolete, unfinished, discontinued,
closed source
Proprietary software is software that grants its creator, publisher, or other rightsholder or rightsholder partner a legal monopoly by modern copyright and intellectual property law to exclude the recipient from freely sharing the software or modi ...
, freeware.
ECX
A compiler and tools written from scratch by Leif Salomonsson in Amiga E, with internal functions developed in m68k and PPC assemblers. It can compile itself, supports multiple targets, and adds many extensions.
:*Platforms: AmigaOS compatibles and derivatives.
:*Targets: AmigaOS 3.0, AmigaOS 4, and MorphOS with m68k or PPC architecture.
:*Status: Stable, mature, open source, freeware. The project has been dormant since 2013.
RE
RE was created by Marco Antoniazzi in PowerD. It is not fully compatible with the Amiga E.
:*Platforms: AmigaOS and compatibles.
:*Targets: AmigaOS 3.0 68020 CPU+FPU; PPC.
:*Status: Stable, closed source, freeware. Dormant since 2008.
Under development
Portabl E
Created by Christopher Handley. It is a meta-compiler written from scratch in Amiga E. It can compile itself and supports multiple targets.
:*Platforms:
AmigaOS
AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions ...
(m68k),
AmigaOS 4
AmigaOS 4 (abbreviated as OS4 or AOS4) is a line of Amiga operating systems which runs on PowerPC microprocessors. It is mainly based on AmigaOS 3.1 source code developed by Commodore International, Commodore, and partially on version 3.9 develop ...
(PPC),
AROS,
MorphOS
MorphOS is an AmigaOS-like operating system designed for Power and PowerPC based computers. The core, based on the Quark microkernel, is proprietary, although several libraries and other parts are open source, such as the Ambient desktop.
The p ...
,
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, and
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
:*Targets: C++ and Amiga E. The Amiga E code is compatible with CreativE, and with proper settings, it can be compatible with the ECX compiler.
:*Status: Stable, mature, under development, closed source, freeware.
E-VO
It is a derivative of the Amiga E compiler, written by Darren Coles. It expands upon the original language and incorporates features from the CreativE compiler.
:*Platforms: AmigaOS and compatibles.
:*Targets: Like Amiga E; AmigaOS with
68000
The Motorola 68000 (sometimes shortened to Motorola 68k or m68k and usually pronounced "sixty-eight-thousand") is a 16/32-bit complex instruction set computer (CISC) microprocessor, introduced in 1979 by Motorola Semiconductor Products Sector ...
and 020+ CPU.
:*Status: Stable, mature, under development, source available, freeware.
References
External links
Amiga E home pageA Beginner's Guide to Amiga E md a Published by Jason R. Hulance in 1997
The original Amiga E manual (for v3.3a)– Compiler manual written by Wouter van Oortmerssen.
Amiga E mailing listAmiga E packages on AminetPortablE home page (a free Windows & Amiga-compatibles implementation)E-VO compiler on GitHubHow the code in Amiga E– Written by Jan Stötzer, a member of Amiga Zentrum Thueringen and Neuhaus13 groups. The tutorial was published in 1994 on Aminet in
AmigaGuide document format;
lha archive.
Amiga E object-oriented framework- Published by Damien Guichard in 1996.
Absolute Beginners Amiga E code examples– Published by Edward Farrow in 1997.
Beginner's Guide to Amiga E– Published by Jason R. Hulance in 1997; AmigaGuide format.
System programming with Amiga E– Published by Damien Guichard in 2007; AmigaGuide format.
{{AmigaOS
Procedural programming languages
Amiga development software
AmigaOS 4 software
MorphOS software
AROS software
Programming languages created in 1993
Systems programming languages