- Comparison of Prolog standards compliance
Prolog is alogic programming language. TheISO Prolog standard: ISO/IEC 13211-1 [ISO/IEC 13211: Information technology — Programming languages — Prolog.International Organization for Standardization , Geneva. ] , published in 1995, aims to standardise the existing practices of the many implementations of Prolog. It has clarified aspects of the language that were previously ambiguous.Validation
The following tables compare the compliance of
Prolog implementations with the ISO standard ISO/IEC 13211. The results were obtained by Péter Szabó and Péter Szeredi [Péter Szabó and Péter Szeredi (2006). Improving the ISO Prolog standard by analyzing compliance test results. Proceedings of the International Conference on Logic Programming. http://www.inf.bme.hu/~pts/stdprolog/] .Prolog versions
*SICStus 3.12.3 (running in ISO mode) [http://www.sics.se/isl/sicstuswww/site/index.html]
*SWI-Prolog 5.4.7 (running in ISO mode, garbage collection off).
*Yap 5.0.1 (ISO mode disabled) [http://www.ncc.up.pt/~vsc/Yap]
*gprolog 1.2.16
*Ciao-prolog 1.10p6 [http://www.ciaohome.org/]
*aprolog 1.22yntax of terms
Double quotes
Cuts
if-then-else
Unify with occurs-check
Atoms (constants)
Type tests: atomic
Type tests: number
Creating and decomposing terms
functor
univ
Arithmetic comparisons
Manipulating the knowledge base
clause
assertz
Finding all solutions to a query
findall
et_input
close
At end of stream test
{| style="font-size:85%; text-align:center;" class="wikitable"!colspan="2" | Prolog!peekchr:11!peekchr:12!peekcde:13!peekchr:14!peekchr:15!peekchr:16!peekchr:17!peekchr:18!peekchr:19!peekchr:20
-!rh colspan="2" |aprolog
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
-!rh colspan="2" |ciao
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
-!rh colspan="2" |gprolog
No
Yes
Yes
Yes
Yes
Yes
No
Yes
Yes
Yes
-!rh colspan="2" |sicstus
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
-!rh colspan="2" |sicstus4
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
-!rh colspan="2" |swipl
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
-!rh colspan="2" |yap
No
Yes
Yes
Yes
Yes
Yes
No
No
No
NoWriting characters: putbyte
Writing terms: write
Operator precedence
Character conversion
char_conversion
once
atom_concat
char_code
number_codes
Flags
et_prolog_flag
Arithmetic: Where expressions are evaluated
in
exp1
Bitwise operations
Right shift
Bitwise or
Bitwise negation
References
* [http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=21413&ICS1=35&ICS2=60&ICS3= ISO Standard]
ee also
* [http://pauillac.inria.fr/~deransar/prolog/docs.html history] of ISO Prolog standard
* [http://www.cs.unipr.it/~bagnara/Papers/Abstracts/ALPN99a relevance] of the standard
* [http://www.amazon.com/Programming-Prolog-Using-ISO-Standard/dp/3540006788 book] on compliance
* [http://www.sju.edu/~jhodgson/x3j17.html X3J17] committee
Wikimedia Foundation. 2010.