Teachers Paradise School Supplies Teacher Resources Free Encyclopedia
Teachers Paradise FREE Teaching Resources
Home Arts Crafts Audio Visual Equipment Office Supplies Teacher Resources
Main Page | Edit this page

Strict programming language

A strict programming language is one in which only strict functions may be defined by the user. A non-strict programming language is one which is not strict, and hence may allow lazy evaluation.

Nearly all programming languages in common use today are strict. Examples include C, C++, Java, Perl, Python, Ruby, Common Lisp, Scheme, and ML. The best known non-strict languages are Haskell, Miranda, and Clean.

In most non-strict languages the non-strictness extends to data constructors. This allows conceptually infinite data structures (such as the list of all prime numbers) to be manipulated in the same way as ordinary finite data structures. It also allows for the use of very large but finite data structures such as the complete game tree of chess.

A non-strict programming language is more expressive than an otherwise equivalent strict language. However, non-strictness has several disadvantages which have prevented widespread adoption:

Strict programming languages are often associated with eager evaluation, and non-strict languages with lazy evaluation, but other evaluation strategies are possible in each case. The terms "eager programming language" and "lazy programming language" are often used as synonyms for "strict programming language" and "non-strict programming language" respectively.

In many strict languages, some of the advantages of non-strict functions can be obtained through the use of macros.




Pay for Educational Supplies & Teaching Supplies with Visa, Master Card, American Express, Discover or Paypal.
TeachersParadise.com HOME | Safe Shopping Guarantee | Help Desk
All trademarks & brands are the property of their respective owners.
Legal Notice 2000-2008 TeachersParadise.com, Inc. All Rights Reserved