Amiga E

Last updated
Amiga E
Paradigm Multi-paradigm: functional, object-oriented, procedural
Designed by Wouter van Oortmerssen
First appearedSeptember 29, 1993;30 years ago (1993-09-29)
Final release
v3.3a / October 27, 1997;26 years ago (1997-10-27)
Platform Motorola 68000 series
OS AmigaOS
License freeware
Filename extensions .e
Website aminet.net/package/dev/e/amigae33a
Influenced by
Ada, C++, Lisp

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. [1] [2]

Contents

According to Wouter van Oortmerssen:

"It is a general-purpose programming language, and the Amiga implementation is specifically targeted at programming system applications. [...] [3] "

In his own words:

"Amiga E was a tremendous success, it became one of the most popular programming languages on the Amiga." [4]

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. [3]

Amiga E was used to create the core of the popular Amiga graphics software Photogenics. [5]

"Hello, World!" example

A "Hello, World!" program in Amiga E looks like this:

PROC main()     WriteF('Hello, World!') ENDPROC

History

1993: The first public release of Amiga E; [6] 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. [7]

1997: The last version of Amiga E is released (3.3a). [3]

1999: Unlimited compiler executable of Amiga E is released. [8]

1999: Source code of the Amiga E compiler in m68k assembler is released under the GPL. [9]

Implementations and derivatives

Discontinued

Amiga E

The first compiler. It was written by Wouter van Oortmerssen in the m68k assembler. It supports tools that are written in E. The compiler generates 68000 machine code directly. [4]

  • Platforms: AmigaOS and compatibles.
  • Targets: Originally AmigaOS with 68000 CPU, but has modules that can handle 68060 architecture. [10] [11]
  • 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. [12]

  • 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." [13] It is derived from the Amiga E and CreativE languages but is incompatible with the former due to syntax changes. [14]

  • 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. [15] 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.

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. [16]

  • 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. [17]

RE

RE was created by Marco Antoniazzi in PowerD. It is not fully compatible with the Amiga E. [18]

  • 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. [19]

  • 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. [20]
  • 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. [21]

  • Platforms: AmigaOS and compatibles.
  • Targets: Like Amiga E; AmigaOS with 68000 and 020+ CPU.
  • Status: Stable, mature, under development, source available, freeware.

Related Research Articles

<span class="mw-page-title-main">Amiga</span> Family of personal computers sold by Commodore

Amiga is a family of personal computers introduced by Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 16/32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and significantly improved graphics and audio compared to previous 8-bit systems. These systems include the Atari ST—released earlier the same year—as well as the Macintosh and Acorn Archimedes. Based on the Motorola 68000 microprocessor, the Amiga differs from its contemporaries through the inclusion of custom hardware to accelerate graphics and sound, including sprites and a blitter, and a pre-emptive multitasking operating system called AmigaOS.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

In computer science, dynamic recompilation is a feature of some emulators and virtual machines, where the system may recompile some part of a program during execution. By compiling during execution, the system can tailor the generated code to reflect the program's run-time environment, and potentially produce more efficient code by exploiting information that is not available to a traditional static compiler.

MorphOS is an AmigaOS-like computer operating system (OS). It is a mixed proprietary and open source OS produced for the Pegasos PowerPC (PPC) processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the Efika and mobileGT. Since MorphOS 2.4, Apple's Mac mini G4 is supported as well, and with the release of MorphOS 2.5 and MorphOS 2.6 the eMac and Power Mac G4 models are respectively supported. The release of MorphOS 3.2 added limited support for Power Mac G5. The core, based on the Quark microkernel, is proprietary, although several libraries and other parts are open source, such as the Ambient desktop.

<span class="mw-page-title-main">Amiga 4000</span> 1992 personal computer

The Amiga 4000, or A4000, from Commodore is the successor of the Amiga 2000 and Amiga 3000 computers. There are two models: the A4000/040 released in October 1992 with a Motorola 68040 CPU, and the A4000/030 released in April 1993 with a Motorola 68EC030.

A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on Android devices is a cross compiler.

Draco was a shareware programming language created by Chris Gray. First developed for CP/M systems, Amiga version followed in 1987.

<span class="mw-page-title-main">Free Pascal</span> Free compiler and IDE for Pascal and ObjectPascal

Free Pascal Compiler (FPC) is a compiler for the closely related programming-language dialects Pascal and Object Pascal. It is free software released under the GNU General Public License, with exception clauses that allow static linking against its runtime libraries and packages for any purpose in combination with any other software license.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one processor architecture to run on another.

<span class="mw-page-title-main">Motorola 68881</span> Computer floating-point unit

The Motorola 68881 and Motorola 68882 are floating-point units (FPUs) used in some computer systems in conjunction with Motorola's 32-bit 68020 or 68030 microprocessors. These coprocessors are external chips, designed before floating point math became standard on CPUs. The Motorola 68881 was introduced in 1984. The 68882 is a higher performance version produced later.

Aminet is the world's largest archive of Amiga-related software and files. Aminet was originally hosted by several universities' FTP sites, and is now available on CD-ROM and on the web. According to Aminet, as of 3 September 2022, it has 83930 packages online.

<span class="mw-page-title-main">Code::Blocks</span> Free, open source, cross-platform IDE

Code::Blocks is a free, open-source, cross-platform IDE that supports multiple compilers including GCC, Clang and Visual C++. It is developed in C++ using wxWidgets as the GUI toolkit. Using a plugin architecture, its capabilities and features are defined by the provided plugins. Currently, Code::Blocks is oriented towards C, C++, and Fortran. It has a custom build system and optional Make support.

The Amiga computer can be used to emulate several other computer platforms, including legacy platforms such as the Commodore 64, and its contemporary rivals such as the IBM PC and the Macintosh.

Amiga software is computer software engineered to run on the Amiga personal computer. Amiga software covers many applications, including productivity, digital art, games, commercial, freeware and hobbyist products. The market was active in the late 1980s and early 1990s but then dwindled. Most Amiga products were originally created directly for the Amiga computer, and were not ported from other platforms.

<span class="mw-page-title-main">AROS Research Operating System</span> Operating system

AROS Research Operating System is a free and open-source multi media centric implementation of the AmigaOS 3.1 application programming interface (API) which is designed to be portable and flexible. As of 2021, ports are available for personal computers (PCs) based on x86 and PowerPC, in native and hosted flavors, with other architectures in development. In a show of full circle development, AROS has been ported to the Motorola 68000 series (m68k) based Amiga 1200, and there is also an ARM port for the Raspberry Pi series.

<span class="mw-page-title-main">Cosmos (operating system)</span> Toolkit for building GUI and command-line based operating systems

C# Open Source Managed Operating System (Cosmos) is a toolkit for building GUI and command-line based operating systems, written mostly in the programming language C# and small amounts of a high-level assembly language named X#. Cosmos is a backronym, in that the acronym was chosen before the meaning. It is open-source software released under a BSD license.

WarpOS is a multitasking kernel for the PowerPC (PPC) architecture central processing unit (CPU) developed by Haage & Partner for the Amiga computer platform in the late 1990s and early 2000s. It runs on PowerUP accelerator boards developed by phase5 which contains both a Motorola 68000 series CPU and a PowerPC CPU with shared address space. WarpOS runs alongside the 68k-based AmigaOS, which can use the PowerPC as a coprocessor. Despite its name, it is not an operating system (OS), but a kernel; it supplies a limited set of functions similar to those in AmigaOS for using the PowerPC. When released, its original name was WarpUP, but was changed to reflect its greater feature set, and possibly to avoid comparison with its competitor, PowerUP.

<span class="mw-page-title-main">AmigaOS</span> Operating system for Amiga computers

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 of AmigaOS required the Motorola 68000 series of 16-bit and 32-bit microprocessors. Later versions were developed by Haage & Partner and then Hyperion Entertainment. A PowerPC microprocessor is required for the most recent release, AmigaOS 4.

References

  1. "1994-1998: From Commodore-Amiga to ESCOM to Gateway". Amiga Documents. Retrieved 2023-01-11.
  2. van Oortmerssen, Wouter (1999-11-04). "Statement of the future of Amiga E". Archived from the original on 1999-11-04. Retrieved 2023-01-12.
  3. 1 2 3 van Oortmerssen, Wouter (1997-10-27). "Amiga E v3.3a release readme". Aminet. Retrieved 2023-01-11.
  4. 1 2 "Amiga E". Wouter van Oortmerssen home page. 2009. Retrieved 2023-01-11.
  5. "Amiga E 3.1i, Cover Disk 122". CU Amiga Magazine. 1995-12-01. p. 10. Archived from the original on 2012-09-20. Retrieved 2023-01-16.
  6. McCreary, Charles R. (October 1993). "Amiga E: Public Domain Programming Gem". Amazing Computing For The Commodore Amiga. Vol. 8, no. 10. PiM Publications. pp. 20–21. ISSN   1053-4547.
  7. "Archive of sources from the AmigaE list". Aminet. 1993-09-29. Retrieved 2023-01-11.
  8. "The Amiga E v3.3a compiler" . Retrieved 2012-02-04.
  9. "The Amiga E v3.3a compiler source code" . Retrieved 2012-02-04.
  10. "Amiga-E module with def's for 68060 CPU". Aminet. 1995-11-02. Retrieved 2023-01-12.
  11. Vintenat, Lionel (April 1995). "Amiga E: un challenger pour la programmation du systeme". AmigaNews (in French). No. 78. NewsEdition. pp. 52–53. ISSN   1164-1746.
  12. "CreativE - AmigaE compiler/linker v2.12.3". Aminet. 2001-07-12. Retrieved 2023-01-12.
  13. "TBS Software contact page". TBS Software. Archived from the original on 2004-12-25.
  14. "PowerD homepage". www.kuchinka.cz. 2013-08-08. Retrieved 2023-01-12.
  15. "Homepage of YAEC". 2002-01-04. Archived from the original on 2002-01-04. Retrieved 2023-01-12.
  16. "E Compiler X". Archived from the original on 2010-09-18. Retrieved 2023-01-12.
  17. "ECX source code v2.3.1". blubbedev.net. 2023-01-12. Retrieved 2023-01-12.
  18. "RE - Another E language compiler (68K/WUP)". Aminet. 2008-11-24. Retrieved 2023-01-12.
  19. "PortablE". cshandley.co.uk. Retrieved 2023-01-12.
  20. "The Portabl E language & compiler manual". cshandley.co.uk. Retrieved 2023-01-12.
  21. E-VO Amiga E Compiler on GitHub, 2022-12-14, retrieved 2023-01-11