chloekek/zeglo


Language: Haskell


Zeglo

Zeglo is a programming language aimed at the implementation of large maintainable software systems.

The most important feature of Zeglo is the absence of global state, including that closed over by system calls. This goes beyond the restrictions imposed by languages such as Haskell, where I/O actions can still modify global state such as the file system. By putting the caller in control of what a subroutine mutates, workarounds for hardcoded resources can be avoided, and any subroutine can easily be sandboxed. The name Zeglo is derived from this feature, as it is an abbreviation of zero globals.

In addition to the absence of global state, Zeglo features referential transparency and a type system derived from System Fω with type inference, type classes, and extensible records and polymorphic variants using row polymorphism; for this feature set the author believes to be the state of the art and has proven to be highly successful in industry.

The final important aspect is that exceptions are not dynamically typed; one can always see from the type of a subroutine what exceptions it may throw.

Inspiration

The main sources of inspiration of the above ideas are:

  • experience in industry,
  • the PureScript programming language, and
  • the ZIO Scala library.

Project Statistics

Sourcerank 2
Repository Size 9.77 KB
Stars 0
Forks 0
Watchers 1
Open issues 0
Dependencies 0
Contributors 1
Tags 0
Created
Last updated
Last pushed

Top Contributors See all

Chloé Kekoa

Something wrong with this page? Make a suggestion

Last synced: 2019-08-26 14:16:06 UTC

Login to resync this repository