Fuzzy Control Language
971690
203469980
2008-04-05T06:45:42Z
213.176.7.23
'''Fuzzy Control Language''', or '''FCL''', is a language for implementing [[fuzzy logic]], especially [[fuzzy control]]. It was standardized by IEC 61131-7. It is a [[domain-specific programming language]]: it has no features unrelated to fuzzy logic, so it is impossible to even print "[[Hello world program|Hello, world!]]". Therefore, one does not write a program in FCL, but one may write ''part'' of it in FCL.
FCL allows the programmer to specify [[fuzzy set]]s, which are lists of points on a graph, as well as IF-THEN rules, for example:
RULE 0: IF (Temperature IS Cold) THEN (Output IS High)
FCL is not an entirely complete fuzzy language, for instance, it does not support "hedges", which are adverbs that modify the set. For instance, the programmer cannot write:
RULE 0: IF (Temperature IS VERY Cold) THEN (Output IS VERY High)
However, the programmer can simply define new sets for "very cold" and "very high". FCL also lacks support for higher-order fuzzy sets, subsets, and so on. None of these features are essential to fuzzy control, although they may be nice to have.
==External links==
* [http://www.fuzzytech.com fuzzyTECH], a commercial fuzzy logic development system containing the specification document for IEC1131-7 (select Fuzzy Application Library)
* [http://www.fuzzytech.com/binaries/ieccd1.pdf IEC 1131-7 CD1] IEC 1131-7 CD1 PDF
* [http://ffll.sourceforge.net Free Fuzzy Logic Library (FFLL)], an implementation library written in C++.
* [http://jfuzzylogic.sourceforge.net JFuzzyLogic], open source FCL + Fuzzy Logic Package (sourceforge, java)
[[Category:Domain-specific programming languages]] IEC 1131-7 CD1
[[Category:Fuzzy logic]]
{{Compu-lang-stub}}
[[zh:模糊控制語言]]