Epigram and Euphoria


Epigram is a functional programming language with dependent types. The epigram also refers to the IDE, usually packaged with the language. The Epigram type system is powerful enough to express the program specifications. Its purpose is to support a smooth transition from regular programs to integrated programs and evidence whose correctness can be verified and certified by the compiler. Epigram exploits the proposition as a type principle and is based on intuition type theory.

The Epigram prototype was implemented by Conor McBride based on the collaboration with James McKinna. Its development is continued by the Epigram group in Nottingham, Durham, St Andrews and Royal Holloway in the United Kingdom.

The current experimental implementation of the Epigram system is available free of charge, together with a user manual, tutorial, and background material. The system was used under LinuxWindows and Mac OS X.

Currently, it is not available, and version 2, which was intended to implement the observational type theory, has not been officially launched, however, there is a GitHub mirror, last updated in 2012.

The design of Epigram and Epigram 2 inspired the development of other systems such as Agda, Idris, and Coq.

Epigram uses a deductible style syntax in two dimensions, with a LaTeX version and an ASCII version.

Euphoria is a programming language created by Robert Craig (Rapid Deployment Software) in Canada, Toronto.

The name Euphoria is an acronym for “End-User Programming with Hierarchical Objects for Robust Interpreted Applications.”

The first public launch was intended for 32-bit machines with MS-DOS and was authorized in 1993.

In 2006, with the release of version 3, the Euphoria project became open, and the OpenEuphoria community began to develop it, and on December 2010 it launched version 4 with a new logo and a new mascot.

Currently, there is OpenEuphoria version 4 released for Microsoft WindowsLinuxMac OS X, and three BSD systems (FreeBSDNetBSDOpenBSD)

Euphoria is an imperative, high-level, general-purpose interpretable language. Using a source code translator on Euphoria, a C source code can be generated, which in turn can be compiled into an executable file or dynamic library using compilers such as GCC, OpenWatcom, etc.

Several GUI libraries are supported, including Win32lib and wrappers for wxWidgets, GTK + [9 and IUP. Euphoria has a simple database system and packages for working with other types of databases.

Euphoria is a general-purpose, procedural language, whose distinguishing features are:

a. Simplicity

 – The package uses only four types of embedded data.

 – Automatic garbage collection.

b. Legibility

  • To separate syntactic constructions, simple English keywords are used, rather than punctuation.

c. Fast implementation

 – Euphoria is an interpreted language that facilitates prototyping and incremental development.

d. Productivity

  • Euphoria uses an efficient garbage collector that counts references and processes circular references correctly.

Euphoria has been designed and developed with the following distinctive features and features:

 1. Ease of learning and simplicity of high-level structures

 2. Realization of the 32-bit “flat” memory model for the MS-DOS version, which avoids the difficulties of memory management and the limitation of objects according to size and address

 3. Supports troubleshooting and error handling during running

 4. Control on the limits of matrices

 5. Dynamic and powerful printing of variables

 6. Interchangeability with automatic memory management and garbage collection

 7. Different types of heterogeneous collections (sequences)

 8. DOS Graphics Library (Euphoria language versions up to 3.1.1 inclusive)

 9. Debugger

 10. Embedded database system

 11. The possibility of low level memory management (usually used when interacting with code located in dynamic libraries)

 12. Handling low memory

Recent Posts