Gödel (programming language): Difference between revisions

Content deleted Content added
Elaz85 (talk | contribs)
The article is based heavily on the book. And let's not talk about potential copyright problems.
AnomieBOT (talk | contribs)
m Dating maintenance tags: {{POV}} {{Citation needed}}
Line 18:
| file_ext =
}}
{{POV|date=February 2014}}
'''Gödel''' is a general-purpose, [[declarative programming language]] based on one of the four main programming paradigms, namely, [[logic programming]]. It was developed by Patricia M. Hill and John W. Lloyd. Basic ideas and features of Gödel are mainly taken from [[Prolog]] language. It is named in honour of logician [[Kurt Gödel]], although the acronym ‘God's Own DEclarative Language' is sometimes used.
 
Line 94:
 
=== Gödel compared to Prolog ===
In general, any programming language should satisfy five properties{{Citation needed|date=February 2014}}. It should be: high level (providing concepts as close as possible to those which people like to use to express their thoughts and ideas), expressive (providing concepts that can be used to model real-world situations easily and concisely), efficient (programs run at speeds and memory costs similar to competing languages), practical (that can be used for large-scale, real-world applications), and of a simple (mathematical) semantics (for which programmers can relatively easily verify and debug their programs and be assured of the correctness of program transformations, optimalisations, and so on).
 
Prolog is high level, efficient and practical. However, it is not sufficiently expressive as the logic it uses is untyped. Then, Prolog's semantics is not satisfactory, for example, provides a little of check, uses unsafe negation and cut, uses non-logical predicates, such as var, nonvar, assert, and retract. These problematical aspects of Prolog cause many practical Prolog programs to have no declarative semantics at all and to have unnecessarily complicated procedural semantics. This means that the analysis, transformation, optimisation, verification, and debugging of many Prolog programs is extremely difficult.