SFL

SFL（Structured Function description Language）は、ハードウェア記述言語である。
概要.
特徴.
記述対象を、単相の同期式回路に絞っていること、プロセッサのパイプライン等の記述を意識した、ステートマシンを記述できる言語機能を持っていること、などの特徴がある。
構文.
見た目は、文の最後にセミコロンを置く、複数の文をまとめるのは（VHDLやVerilogと違い）begin〜end ではなく "{" "}" である、式の並びはコンマで区切り、引数は "(" ")" で括る、など、C言語に似ている。
意味.
ハードウェア記述において重要である並行性については、CSPを参考にしておりOccamからの影響がみられる。
歴史.
1980年代よりNTTによって開発が進められ、現在は大学での利用が主である。
仕様.
「パルテノン研究会」により、標準的な仕様が策定され、「SFL仕様書」が配布されている。一部旧来の実装と異なる点がある。インクルードとマクロには言及していない。
実装.
NTT電気通信研究所で、言語の開発と同時に開発された合成系であるPARTHENONシステムや、sfl2vlなどがある。PARTHENONシステムではPrologを使っており、独自のProlog処理系を含んでいる。次に述べるNSLの実装であるNSL CoreにもSFLを受け付けるオプションがある。
NSL.
SFLの影響を受けたハードウェア記述言語に、IP ARCH, Inc. が開発し、オーバートーン株式会社がサポートしているNSLがある。SFLにはOccamの影響を受けた「par」という並列プリミティブがあったが、NSLではキーワードparを排して、単文のあるべき所に単に { } があれば並列動作とし、さらにSFLには存在しなかったOccamのSEQに相当するseqというシーケンシャルな動作（クロックドメインの動作）の記述のためのプリミティブがある。