Amiga E
{{Short description|General-purpose programming language for the Amiga family of computers}}
{{Refimprove|date=March 2018}}
{{distinguish|E (programming language)|E (verification language)}}
{{Infobox programming language
| name = Amiga E
| paradigm = Multi-paradigm: functional, object-oriented, procedural
| released = {{Start date and age|1993|09|29}}
| designer = Wouter van Oortmerssen
| discontinued = yes
| latest release version = v3.3a
| latest release date = {{Start date and age|1997|10|27}}
| influenced by = Ada, C++, Lisp
| platform = Motorola 68000 series
| operating system = AmigaOS
| license = freeware
| File extensions = .e
| website = {{URL|https://aminet.net/package/dev/e/amigae33a}}
}}
Amiga E is a programming language created by Wouter van Oortmerssen on the Amiga 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.{{Cite web |title=1994-1998: From Commodore-Amiga to ESCOM to Gateway |url=https://sites.google.com/site/amigadocuments/ |access-date=2023-01-11 |website=Amiga Documents |language=en-US}}{{Cite web |last=van Oortmerssen |first=Wouter |date=1999-11-04 |title=Statement of the future of Amiga E |url=http://www.ecs.soton.ac.uk/~wvo96r/e/efuture.txt |url-status=dead |archive-url=https://web.archive.org/web/19991104065743/http://www.ecs.soton.ac.uk/~wvo96r/e/efuture.txt |archive-date=1999-11-04 |access-date=2023-01-12 }}
According to Wouter van Oortmerssen:
"It is a general-purpose programming language, and the Amiga implementation is specifically targeted at programming system applications. [...]{{Cite web |last=van Oortmerssen |first=Wouter |date=1997-10-27 |title=Amiga E v3.3a release readme |url=https://strlen.com/files/lang/e/amigae33a.readme |access-date=2023-01-11 |website=Aminet}}"In his own words:
"Amiga E was a tremendous success, it became one of the most popular programming languages on the Amiga."{{Cite web |last= |first= |date=2009 |title=Amiga E |url=https://strlen.com/amiga-e/ |access-date=2023-01-11 |website=Wouter van Oortmerssen home page}}
Overview
Amiga E combines features from several languages but follows the original C programming language 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), very readable source code, flexible type system, powerful module system, exception handling (not C++ variant), and Object-oriented programming.
Amiga E was used to create the core of the popular Amiga graphics software Photogenics.{{Cite news |date=1995-12-01 |title=Amiga E 3.1i, Cover Disk 122 |pages=10 |work=CU Amiga Magazine |url=https://archive.org/details/cuamiga-magazine-070/page/n9/mode/2up |access-date=2023-01-16 |archive-url=https://archive.org/details/cuamiga-magazine-070/page/n9/mode/2up?q=%22amiga+e%22 |archive-date=2012-09-20}}
"Hello, World!" example
A "Hello, World!" program in Amiga E looks like this:
{{pre|
PROC main()
WriteF('Hello, World!')
ENDPROC
}}
History
1993: The first public release of Amiga E;{{cite magazine |last=McCreary|first=Charles R.|date=October 1993|title=Amiga E: Public Domain Programming Gem|magazine=Amazing Computing For The Commodore Amiga|publisher=PiM Publications|issn=1053-4547|volume=8|number=10|pages=20–21}} 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.{{Cite web |last= |first= |date=1993-09-29 |title=Archive of sources from the AmigaE list |url=https://aminet.net/package/dev/e/AmigaE.SrcArc |access-date=2023-01-11 |website=Aminet}}
1997: The last version of Amiga E is released (3.3a).
1999: Unlimited compiler executable of Amiga E is released.{{cite web |author= |first= |title=The Amiga E v3.3a compiler |url=http://wouter.fov120.com/files/lang/e/ec33a.readme |accessdate=2012-02-04}}
1999: Source code of the Amiga E compiler in m68k assembler is released under the GPL.{{cite web |author= |first= |title=The Amiga E v3.3a compiler source code |url=http://wouter.fov120.com/files/lang/e/ec33a_src.readme |accessdate=2012-02-04}}
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 directly.
:*Platforms: AmigaOS and compatibles.
:*Targets: Originally AmigaOS with 68000 CPU, but has modules that can handle 68060 architecture.{{Cite web |last= |first= |title=Amiga-E module with def's for 68060 CPU |url=https://aminet.net/package/dev/e/Execbase060 |access-date=2023-01-12 |website=Aminet |publication-date=1995-11-02}}{{cite magazine |last=Vintenat|first=Lionel|date=April 1995|title=Amiga E: un challenger pour la programmation du systeme|language=fr|magazine=AmigaNews|publisher=NewsEdition|issn=1164-1746|issue=78|pages=52–53}}
:*Status: Stable, mature, discontinued, source available, freeware.
== CreativE ==
It was created by Tomasz Wiszkowski. It is based on the GPL sources of Amiga E and adds many extensions to the compiler.{{cite web |author= |first= |date=2001-07-12 |title=CreativE - AmigaE compiler/linker v2.12.3 |url=http://aminet.net/package/dev/e/2b_CreativE |accessdate=2023-01-12 |website=Aminet}}
:*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."{{Cite web |title=TBS Software contact page |url=http://www.tbs-software.com/fp/author.phtml |url-status=dead |archive-url=https://web.archive.org/web/20041225110256/http://www.tbs-software.com/fp/author.phtml |archive-date=2004-12-25 |website=TBS Software}} It is derived from the Amiga E and CreativE languages but is incompatible with the former due to syntax changes.{{Cite web |last= |first= |date=2013-08-08 |title=PowerD homepage |url=https://www.kuchinka.cz/powerd/index.php?page=4&lang=en |access-date=2023-01-12 |website=www.kuchinka.cz}}
:*Platforms: AmigaOS and compatibles.
:*Targets: AmigaOS 3.0 or newer; at least 68020 CPU+FPU or PowerPC (PPC); and 4MB of RAM.
:*Status: Stable, mature, closed source, 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.{{Cite web |date=2002-01-04 |title=Homepage of YAEC |url=http://home.swipnet.se/blubbe/YAEC/ |archive-url=https://web.archive.org/web/20020104132622/http://home.swipnet.se/blubbe/YAEC/ |url-status=dead |archive-date=2002-01-04 |access-date=2023-01-12 }} 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, freeware.
{{anchor|ECX}}
== 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.{{cite web |author= |first= |title=E Compiler X |url=http://blubbedev.net/ecx/ |url-status=live |archive-url=https://web.archive.org/web/20100918221755/http://www.blubbedev.net/ecx/ |archive-date=2010-09-18 |accessdate=2023-01-12}}
:*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.{{Cite web |last= |first= |date=2023-01-12 |title=ECX source code v2.3.1 |url=http://www.blubbedev.net/ecx/download/ecx-2.3.1-src.readme |access-date=2023-01-12 |website=blubbedev.net}}
{{anchor|PortablE}}
== RE ==
RE was created by Marco Antoniazzi in PowerD. It is not fully compatible with the Amiga E.{{Cite web |last= |first= |date=2008-11-24 |title=RE - Another E language compiler (68K/WUP) |url=https://aminet.net/package/dev/e/RE |access-date=2023-01-12 |website=Aminet}}
:*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.{{Cite web |title=PortablE |url=http://cshandley.co.uk/portable/ |access-date=2023-01-12 |website=cshandley.co.uk}}
:*Platforms: AmigaOS (m68k), AmigaOS 4 (PPC), AROS, MorphOS, Linux, and Windows,
:*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.{{Cite web |title=The Portabl E language & compiler manual |url=http://cshandley.co.uk/portable/PortablE.html |access-date=2023-01-12 |website=cshandley.co.uk}}
:*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.{{Citation |last= |first= |title=E-VO Amiga E Compiler on GitHub |date=2022-12-14 |url=https://github.com/dmcoles/EVO |access-date=2023-01-11}}
:*Platforms: AmigaOS and compatibles.
:*Targets: Like Amiga E; AmigaOS with 68000 and 020+ CPU.
:*Status: Stable, mature, under development, source available, freeware.
References
{{Reflist|30em}}
External links
{{Portal|Amiga}}
- [http://strlen.com/amiga-e Amiga E home page]
- [http://cshandley.co.uk/JasonHulance/ A Beginner's Guide to Amiga E] md a Published by Jason R. Hulance in 1997
- [http://cshandley.co.uk/amigae/ The original Amiga E manual (for v3.3a)] – Compiler manual written by Wouter van Oortmerssen.
- [http://www.freelists.org/list/positron Amiga E mailing list]
- [https://aminet.net/search?desc=AmigaE Amiga E packages on Aminet]
- [http://cshandley.co.uk/portable/ PortablE home page (a free Windows & Amiga-compatibles implementation)]
- [https://github.com/dmcoles/EVO E-VO compiler on GitHub]
- [https://aminet.net/package/dev/e/E-Course How 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.
- [https://aminet.net/package/dev/e/framework Amiga E object-oriented framework] - Published by Damien Guichard in 1996.
- [https://aminet.net/package/dev/e/E_XPack1 Absolute Beginners Amiga E code examples] – Published by Edward Farrow in 1997.
- [https://aminet.net/package/dev/e/BeginnersGuideUpd Beginner's Guide to Amiga E] – Published by Jason R. Hulance in 1997; AmigaGuide format.
- [https://aminet.net/package/dev/e/EC4OS3 System programming with Amiga E] – Published by Damien Guichard in 2007; AmigaGuide format.
{{AmigaOS}}
Category:Procedural programming languages
Category:Amiga development software