hoc(プログラミング言語)

hoc
原作者ブライアン・カーニハンロブ・パイク
AT&Tベル研究所
初回リリース1984年、41年前 ( 1984 )
リポジトリ
  • netlib.bell-labs.com/~bwk/hoc.sh
言語C
オペレーティングシステムUnixPlan 9
プラットフォームクロスプラットフォーム
タイププログラミング言語コマンド
ライセンスPlan 9: MITライセンス

hocはHigh Order Calculatorの略で、 1984年の書籍『The Unix Programming Environment』でYaccを用いたインタープリタの構築方法を示すために使用されたインタープリタ型 プログラミング言語です

hocはブライアン・カーニハンロブ・パイクによって、高機能な対話型計算機として開発されました。基本的な機能は、浮動小数点数値式(例:)を評価することです。その後、Cに似た構文を使用して、変数、条件分岐、ループ、ユーザー定義関数、単純な入出力などが追加されました1+2*sin(0.7)

改良されたhocインタプリタは1985年に第8版 Research Unixに含まれていましたが、商用UnixシステムやLinuxディストリビューションでは一般的に採用されていません。代わりに、以前の計算機言語であるdcbcがこれらのシステムで広く普及しました。hocはPlan 9オペレーティングシステムの一部として生き残り、進化を続けました。hocのいくつかの改良版は、ベル研究所やその他の個人によってフリーソフトウェアとしてリリースされました(下記のリストを参照)。hocはPythonと並んで、 Neuronシミュレータのスクリプト言語として使用されています

以下は、hocでの対話型計算機セッションの簡単な例です。強調表示されたテキストはhocの出力を表します

 1 + 2 * 3 7角度= π / 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 domain error 0.0  

参考文献

  • カーニハン、ブライアン・W.、パイク、ロブ (1984). Unixプログラミング環境. プレンティス・ホール. ISBN 0-13-937681-X
  • hoc(1) –  Plan 9プログラマーズ・マニュアル 第1巻

hocの実装とバージョン

  • AT&Tバージョン:
    • hoc を含む、Unix プログラミング環境ブックのオリジナルコード
    • ベル研究所がフリーソフトウェアとしてリリースしたhocのソースコード。これはResearch Unix版で、本書に掲載されているものより若干改良されています。
    • MITライセンスの下でリリースされたPlan9版のhoc 。このバージョンはResearch Unix版とは若干異なり、最も顕著な違いは、番号付き関数引数(Unixシェルの$1、$2など)が名前付き引数(C言語)に置き換えられていることです。Plan9のhocマニュアルも参照してください。
  • その他のバージョン:
    • Nelson HF Beebeによるhocの拡張版。
    • Nadav Y. Har'Elによるhocの拡張版。
    • Jack Dennonによるhocの拡張版。
    • Michael Hines、John W. Moore、Ted Carnevaleによるhocの拡張版。
「https://en.wikipedia.org/w/index.php?title=Hoc_(プログラミング言語)&oldid=1271944760」より取得