Escher (programming language): Difference between revisions

Content deleted Content added
mNo edit summary
Tags: Reverted extraneous markup
GreenC bot (talk | contribs)
 
(5 intermediate revisions by 4 users not shown)
Line 17:
| file_ext =
}}
'''Escher''' (named for [[M. C. Escher]], "a master of endless loops") is a [[declarative programming|declarative]] [[programming language]] that supports both [[functional programming]] and [[logic programming]] models, developed by J.W. Lloyd in the mid-1990s. It was designed mostly as a research and teaching vehicle. The basic view of programming exhibited by Escher and related languages is that a program is a representation of a theory in some [[logic framework]], and the program's execution (computation) is a deduction from the theory. The logic framework for Escher is [[Alonzo Church]]'s [[simple theory of types]].
 
Escher, notably, supports I/O through a [[monadic type]] representing the <ref></ref>"'outside world"', in the style of [[Haskell (programming language)|Haskell]].
Apart from that, there are also a lot of [https://dstechsales.com/how-many-languages-are-in-web-development/ web development languages] available and used popularly by web developers.
 
Escher, notably, supports I/O through a [[monadic type]] representing the <ref></ref>"outside world" in the style of [[Haskell (programming language)|Haskell]].
One of the goals of Escher's designers was to support [[meta-programming]], and so the language has comprehensive support for generating and transforming programs.
 
Line 51 ⟶ 49:
 
==References==
* [httphttps://wwwweb.csarchive.brisorg/web/20231008145644/https://www.bristol.ac.uk/Publicationsengineering/Papersnew-structure/?id=1000073.pdf Declarative programming in Escher],{{Dead link|date=October 2024}} JW Lloyd, University of Bristol, Bristol, UK, 1995
* [https://users.cecs.anu.edu.au/~kee/Escher/ An implementation of Escher] (Some dead links can be reached from the [https://web.archive.org/web/20211127165402/http://users.cecs.anu.edu.au/~kee/Escher/ archived page] (or by substituting the new ___domain in the link in question).)