Loading article…
| 原作者 | ブライアン・カーニハン、ロブ・パイク (AT&T ベル研究所) |
|---|---|
| 初回リリース | 1984年 |
| リポジトリ |
|
| 書かれた | C |
| オペレーティング·システム | Unix、プラン9 |
| プラットフォーム | クロスプラットフォーム |
| タイプ | プログラミング言語、コマンド |
| ライセンス | プラン9: MITライセンス |
hoc はHigh Order Calculatorの略で、 1984 年の書籍『The Unix Programming Environment』でYacc を使用してインタープリタを構築する方法を示すために使用されたインタープリタ型 プログラミング言語です。
hoc はBrian KernighanとRob Pikeによって、高機能な対話型計算機として開発されました。基本的な機能は、 などの浮動小数点数値式を評価することです。その後、C に似た構文を使用して、変数、条件文、ループ、ユーザー定義関数、単純な IO などが追加されました。
1+2*sin(0.7)
1985 年に改良された hoc インタープリタがEighth Edition Research Unixに含まれましたが、商用UnixシステムやLinuxディストリビューションでは一般に採用されていません。代わりに、以前の計算機言語であるdcとbc がそれらのシステムで広く使われるようになりました。hoc はPlan 9オペレーティング システムの一部として生き残り、進化を続けました。hoc の改良版がいくつか、Bell Labs や他の個人によってフリー ソフトウェアとしてリリースされました(以下のリストを参照)。hoc は、Python とともにNeuron シミュレータのスクリプト言語として使用されています。
例
以下は、hoc での対話型計算機セッションの簡単な例です。強調表示されたテキストは hoc の出力を表します。
1 + 2 * 3
7角度= PI / 3
r = sin (角度)
r
0.866025
r * 2
1.73205
関数とフロー制御の簡単な例:
func atan 2 (){
if ( $ 1 > 0 ){
return atan ( $ 2 / $ 1 )
} else if ( $ 1 < 0 ){
return atan ( $ 2 / $ 1 ) + PI
} else if ( $ 2 > 0 ){
return PI / 2
} else if ( $ 2 < 0 ){
return - PI / 2
} else {
print "atan2 domain error"
return 0
}
}
atan 2 ( 2 , 3 )
0.982794 atan 2 ( 0 , 0 ) atan 2ドメインエラー
0.0
参考文献
外部リンク
- – Plan 9プログラマーズマニュアル、第 1 巻
hoc 実装とバージョン
- AT&T バージョン:
- hoc を含む、Unix プログラミング環境ブックからのオリジナル コード。
- ベル研究所の hoc のソース コードは、フリー ソフトウェアとしてリリースされています。これは Research Unix バージョンであり、本に掲載されているバージョンより若干改良されています。
- Plan9 バージョンの hoc はLucent Public Licenseに基づいてリリースされています。このバージョンは Research Unix バージョンとは少し異なりますが、最も顕著な違いは、番号付き関数引数 (Unix シェルの場合の $1、$2 など) が名前付き引数 (C の場合) に置き換えられたことです。Plan 9 の hoc マニュアルも参照してください。
- その他のバージョン:
- Nelson HF Beebe による hoc の拡張バージョン。
- Nadav Y. Har'El による hoc の拡張バージョン。
- Jack Dennon による hoc の拡張バージョン。
- Michael Hines、John W. Moore、Ted Carnevale による hoc の拡張バージョン。
