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:
  • Because of the uncertainty regarding if and when expressions will be evaluated, non-strict languages generally must be purely functional to be useful.
  • All hardware architectures in common use are optimized for strict languages, so the best compilers for non-strict languages produce slower code than the best compilers for strict languages.
  • Space complexity of non-strict programs is difficult to understand and predict.
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 advantages of non-strict functions can be obtained through the use of macros.

 

<< PreviousWord BrowserNext >>
s 42nd street shuttle (new york city subway service)
robert morley
robert young (linguist)
a child's history of england
government of the 24th dil
moshe feinstein
marcelino menndez y pelayo
government of the 23rd dil
manuel mil i fontanals
government of the 22nd dil
government of the 21st dil
strict function
6 (new york city subway service)
government of the 20th dil
government of the 19th dil
government of the 18th dil
government of the 17th dil
government of the 16th dil
government of the 14th dil
government of the 13th dil
heat shock protein
seafire
the collective
s rockaway park shuttle (new york city subway service)
redowa
chris burden
royal naval air service
houston galleria
market square
schottische
s franklin avenue shuttle (new york city subway service)
toque
bobby hill (king of the hill)
cradle
imperium (warhammer 40,000)
history of kansas
unicron
posthumous diary
annalisa cima
pigalle
lindbergh kidnapping
john schneider
annette o'toole
homer lea