S-ラング

S-ラング
開発者ジョン・E・デイビス[1]
安定版リリース
2.3.3 [2]  / 2022年8月5日
書かれたS-Langスクリプト言語
オペレーティング·システムPOSIX
タイプウィジェットツールキット
ライセンスGPL-2.0以降[3]
Webサイトwww.jedsoft.org/スラング/

S -Langプログラミングライブラリは、 UnixWindowsVMSOS/2Mac OS X用のソフトウェアライブラリです。S -Langスクリプト言語のインタープリタを埋め込むためのルーチンと、テキストベースのアプリケーションの作成を容易にするコンポーネントを提供します[4]後者のクラスの関数には、キーマップの構築と操作のためのルーチン、対話型の行編集機能、そして低レベルおよび高レベルの画面/端末管理機能が含まれます。GNU General Public License の条件に基づいて配布されています

簡単な歴史

S-Langプログラミングライブラリは、ジョン・E・デイビスによって1992年に開発が開始されました。彼は、テキストエディタ用に作成した関数が他のプログラムでも役立つかもしれないと考えていたのです。[5]このライブラリの初期バージョンには、コンピュータ端末とのやり取りのための入出力ルーチンと、科学的なプロットプログラム用に開発された、PostScript風の構文を持つシンプルなスタックベースのインタープリタの実装が含まれていました。JEDテキストエディタはこのインタープリタを組み込み、ライブラリの端末I/Oコンポーネントを使用した最初のプログラムでした。

通訳者

S-Langライブラリの大部分はインタープリタで構成されており、開発の大部分もここで行われています。インタープリタがサポートしていた当初の構文はPostScriptに似ていましたが、その後、オブジェクト指向スタイルの構造もサポートされるようになり、C言語にかなり近いものへと進化しました。デイビスの物理学のバックグラウンドと科学計算への専門的な関心を反映して、この言語はMATLABIDLに類似した、ベクトル化された配列ベースの演算を数多くネイティブにサポートしています。[6]

バージョン2.0までは、インタプリタはスタンドアロンプ​​ログラムではありませんでした。デイビスは、アプリケーションに組み込んで拡張性を持たせることを提唱しました。インタプリタを使用するには、Cプログラムに組み込むか、他のアプリケーション(例えばJEDエディタ)のコンテキストで使用する必要がありました。S-Langシェルであるslshは、スクリプトの実行程度しかできないデモプログラムでした。2005年にリリースされたバージョン2.0では、slshがインタラクティブになり、独自のアプリケーションへと進化しました。slshは、多数の外部モジュールを利用できるようになり、S-Langインタプリタとなりました。

画面管理

1990 年代半ば、scスプレッドシートを S-Lang ライブラリに移植しているときに、 Davis はライブラリの画面管理機能を開発した。[引用が必要] このコンポーネントは、画面出力を最適化 (端末に送信される文字数を最小限に抑える) し、アプリケーション コードと端末の間に抽象化の追加レイヤーを介してさまざまな端末をサポートする簡単な方法を提供するように設計された。slrnニュースリーダーは、このインターフェイスをフルに活用した最初のアプリケーションだった。[引用が必要] それ以来、他の多くのプログラム (たとえば、Mutt [7] ) がライブラリのこの機能を利用しており、このコンポーネントはcursesの代替と見なされているため、おそらくライブラリで最も使用されている部分となっている[8] [9]バージョン 2.0 以降、画面管理ルーチンはUTF-8を透過的にサポートしている。

サンプルソースコード

#! /usr/bin/env slsh % 以下のプログラムは、次の問題を解決します: % 次のような行で構成される入力ファイルをソートします% % var1=23 other=14 ditto=23 fred=2プライベート 変数 Keys  Values ;プライベート 定義 sort_fun  ( i  j ) { 変数 s  a  b ; s  =  Values [ i ]  -  Values [ j ];  ! if  ( s )  return  strcmp  ( Keys [ i ],  Keys [ j ]);  return  s ; } slsh_main  ()を定義します{ 変数 line  len  i  vals ;  foreach  line  ( stdin )  { %空白文字と = を区切り文字として使用して、文字列を文字列の配列に分割します % % line = strtok ( line " \t\n=" ); len = length ( line ) / 2 ; if ( len == 0 ) continue ;          % 偶数要素はキー、奇数要素は値です。 % [0::2] は、ステップ 2 を指定して0 から length(line) までのインデックスを作成する配列です。Keys = line [[ 0 :: 2 ]]; vals = line [[ 1 :: 2 ]];    % 変数は上記で宣言されていますValues  =  atoi  ( vals );i  =  array_sort  ([ 0 : len - 1 ],  & sort_fun ); % 結果の書き方はいくつかあります。以下はループを回避する高速な方法です。% 空の括弧 () は変数宣言を示し、戻り値を破棄することを示します。 % ()  =  printf  ( "%s\n" ,  strjoin  ( Keys [ i ]  +  "="  +  vals [ i ],  " " ));  } }

参照

参考文献

  1. ^ Davis, John (2017年11月26日). 「A little bit about me」John E. Davis Software . 2020年6月1日時点のオリジナルよりアーカイブ。 2020年6月1日閲覧
  2. ^ 「スラングリリース」。
  3. ^ Davis, John (2018年3月4日). 「S-Langソフトウェアライセンス情報」John E. Davis Software . 2020年6月1日時点のオリジナルよりアーカイブ。 2020年5月31日閲覧
  4. ^ Linux Bible 2010 Edition: Boot Up to Ubuntu, Fedora, KNOPPIX, Debian, openSUSE, and 13 Other Distributions、Christopher Negus 著、Wiley、2009年、ISBN 978-0-470-48505-7、775ページ
  5. ^ 「S-Langの簡潔な歴史」 。 2017年6月6日閲覧
  6. ^ マルチコアの活用:オープンソースの数値スクリプト言語から OpenMP を活用する、Noble, MS、Concurrency and Computation: Practice and Experience Volume 20、Issue 16、1877–1891 ページ、2008、doi: 10.1002/cpe.1296
  7. ^ 「Mutt インストールガイド」 。 2015年10月4日閲覧
  8. ^ MySQL Developer's Library、Paul Dubois 著、Pearson Education、2009 年、ISBN 9780672329388、セクション6.1
  9. ^ Linuxアプリケーション開発、マイケル・K・ジョンソンとエリック・W・トロアン著、アディソン・ウェズレー、2005年、ISBN 9780321219145、p513
  • S-Lang ライブラリ情報ページ、John E. Davis 著
  • S-Lang リリース
  • S-Langドキュメント
Retrieved from "https://en.wikipedia.org/w/index.php?title=S-Lang&oldid=1321585100"