Charity (programming language)

Charity (programming language)
Charity
Paradigm(s) pure functional
Appeared in 1992[1]
Developer The Charity Development Group
Preview release 1.99.1 (beta)[2] (August 2000; 11 years ago (2000-08))
OS Linux, SunOS, Windows 9x, Windows NT[2]
License Non-commercial use only[3]
Website pll.cpsc.ucalgary.ca/charity1/www/home.html

Charity is an experimental purely functional programming language, developed at the University of Calgary. Based on ideas by Hagino Tatsuya, it is completely grounded in category theory.

Disregarding interactions with the outside world, all Charity programs are guaranteed to terminate. This means that the language is not Turing-complete. Nevertheless, it is capable of expressing the Ackermann function, which makes it more expressive than primitive recursion.

The language allows ordinary recursive data types, such as might be found in ML, which are required to be finite, and corecursive data types, which are allowed to be potentially infinite. The control structure for operating on recursive data types is primitive recursion or catamorphism, and the control structure for corecursive data types is primitive co-recursion or anamorphism. Neither control structure can operate over the other kind of data, so all catamorphisms terminate and all anamorphisms are productive.

References

  1. ^ Cockett, Robin; Fukushima, Tom (May 27, 1992). "About Charity". Yellow Series Report (Calgary, Alberta, Canada: Department of Computer Science, University of Calgary) (92/480/18). ftp://ftp.cpsc.ucalgary.ca/pub/projects/charity/literature/papers_and_reports/about_charity.ps. 
  2. ^ a b "Download The Charity System". CHARITY. The Charity Development Group. October 2000. http://pll.cpsc.ucalgary.ca/charity1/www/system.html. Retrieved 2011-03-06. 
  3. ^ "License Conditions". CHARITY. The Charity Development Group. September 1997. http://pll.cpsc.ucalgary.ca/charity1/www/license.html. Retrieved 2011-03-06. 

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Programming language — lists Alphabetical Categorical Chronological Generational A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that… …   Wikipedia

  • Charity (langage) — Traduction à relire Charity (programming language) → …   Wikipédia en Français

  • Charity — Contents 1 Concepts and practices 2 Organizations 3 Places 4 …   Wikipedia

  • List of programming languages by category — Programming language lists Alphabetical Categorical Chronological Generational This is a list of programming languages grouped by category. Some languages are listed in multiple categories. Contents …   Wikipedia

  • List of programming languages — Programming language lists Alphabetical Categorical Chronological Generational The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and historical ones, in… …   Wikipedia

  • List of Chinese language radio stations — This is a list of radio stations that broadcast in the Chinese language. Contents 1 Mainland China 1.1 China Radio International (CRI) 1.2 Beijing Radio Stations 1.3 Guangd …   Wikipedia

  • Channel 4 programming — Channel 4, in common with the other main British stations broadcast on analogue, airs a highly comprehensive range of programming. It was established in 1982 with a specific intention of providing programming to groups of minority interests, not… …   Wikipedia

  • Liste von Programmiersprachen — Inhaltsverzeichnis A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A A A# A+ …   Deutsch Wikipedia

  • Initial algebra — In mathematics, an initial algebra is an initial object in the category of F algebras for a given endofunctor F . The initiality provides a general framework for induction and recursion. For instance, consider the endofunctor 1+( ) on the… …   Wikipedia

  • Ackermann function — In recursion theory, the Ackermann function or Ackermann Péter function is a simple example of a general recursive function that is not primitive recursive. General recursive functions are also known as computable functions. The set of primitive… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”