Strict programming language: Difference between revisions

Content deleted Content added
removed 3 year old uncited mention of magical compiler
Recdep (talk | contribs)
Line 1:
{{UnreferencedRefimprove|date=OctoberNovember 20062014}}
A '''strict programming language''' is one in which only [[strict function]]s (functions whose parameters must be evaluated completely before they may be called) may be defined by the user. A '''non-strict programming language''' allows the user to define non-strict functions, and hence may allow [[lazy evaluation]].{{Sfn|Scott|2006|p=541}}
 
== Examples ==
Nearly all [[programming language]]s in common use today are strict. Examples include [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Perl]] (through version 5), [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]], [[Common Lisp]], and [[ML (programming language)|ML]]. TheExamples best knownfor non-strict languages are [[Haskell (programming language)|Haskell]], [[Miranda (programming language)|Miranda]], and [[Clean (programming language)|Clean]].{{Sfn|Cluet & Hull|1998|pp=25-26}}
Languages whose ordinary functions are strict but which provide a [[Macro (computer science)|macro system]] to build non-strict functions include [[C (programming language)|C]], [[C++]], and [[Scheme (programming language)|Scheme]].
 
Line 19:
 
In many strict languages, some advantages of non-strict functions can be obtained through the use of [[Macro (computer science)|macros]] or [[thunk]]s.
 
 
==Citations==
{{Reflist}}
 
==References==
{{Refbegin}}
*{{Citation
| last =Scott
| first =Michael Lee
| editor-last =McFadden
| editor-first =Nate
| editor2-last =Witte
| editor2-first =Valerie
| display-editors =1
| others =Published by Denise Penrose
| date =2006
| origyear =1999
| title =Programming Language Pragmatics
| edition ={{Ordinal|2|sup=yes}}
| volume =Volume 2
| publisher =Morgan Kaufmann
| publication-place =San Francisco
| isbn =9780126339512
| oclc =551774322
| url =http://books.google.com/books?id=TLbvODF1uIEC
| accessdate =21 November 2014
}}
*{{Citation
| editor-last =Cluet
| editor-first =Sophie
| editor2-last =Hull
| editor2-first =Rick
| editor3-last =Goos
| editor3-first =Gerhard
| editor4-last =Hartmanis
| editor4-first =Juris
| editor5-last =van Leeuwen
| editor5-first =Jan
| display-editors =2
| date =1998
| origyear =1997
| title =Database Programming Languages
| series =Lecture Notes in Computer Science
| volume =Volume 1369
| publisher =Springer
| publication-place =Berlin; Heidelberg
| isbn =9783540648239
| issn =0302-9743
| oclc =873553545
| url =http://books.google.com/books?id=mf070SFg1qQC
| accessdate =21 November 2014
| ref={{harvid|Cluet & Hull|1998}}
}}
{{Refend}}
 
 
[[Category:Programming paradigms]]