Categories: 未分類

Yoix

Yoix

 「Yoix」  
コンピュータプログラミングにおいて、Yoixであるハイレベル、汎用、解釈、動的プログラミング言語。Yoixインタープリターは、アドオンパッケージを使用せずに標準のJavaテクノロジを使用して実装されており、Sunに準拠したJVMのみが動作する必要が AT&T Labsの研究者が社内で使用するために最初に開発したもので、2000年後半から無料のオープンソースソフトウェアとして利用できるようになりました。 Yoix パラダイム
マルチパラダイム、オブジェクトベース、手続き型
によって設計された
リッチドレクスラーとジョンモセニゴ
初登場 2000年 安定リリース
2.3.1 / 2011年11月25日 ; 9年前  (2011-11-25)
規律の入力
ダイナミック、ウィーク OS クロスプラットフォーム
ライセンス
オープンソースイニシアチブCommonPublic License
Webサイト
https://github.com/att/yoix
に影響を受けた
C、Java、PostScript

コンテンツ
1 歴史
2 概要
2.1 特徴 2.2 設計
3 アプリケーション
4 データの視覚化
4.1 データマイニング 4.2 グラフ描画 4.3 データのセルを整理する 4.4 インタラクティブな2Dグラフィックス
5 制限と焦点
6 ライセンス
7 例
8 参考文献
9 外部リンク

歴史
1998年、Javaテクノロジはまだ出現していました。Swingツールキットはアドオンパッケージでした。割り込み可能なI / O、正規表現、およびprintf機能はまだ機能していませんでした。また、Java WebStartは開発されさらに、Javaスクリプト言語は当時ほとんど存在していませんでした。GroovyとJRubyはまだ発明されておらず、Jythonは1997年後半に作成されたばかりです。1998年のブラウザは機能セットが限られており、8で本番環境で使用するには不安定すぎました。時間シフトそしてブラウザ戦争でまだ小競り合いと戦っていた。この環境で、Yoixテクノロジーは、AT&T内で開発されているミッションクリティカルなアプリケーション、つまり今日までそのグローバル不正管理システム用の、信頼性が高く、配布と保守が容易なGUIフロントエンドに対する差し迫ったニーズに応えて作成されました。 AT&Tの拡大するネットワーク(有線、無線、IP)での音声トラフィックに関連する不正行為を監視および追跡します。Yoixテクノロジーは、2000年後半にOpen Source Initiative Common Public LicenseV1.0の下で最初に一般にリリースされました。
Yoixの名前は、部分的には猟犬への励ましのキツネ狩りの叫びから、部分的にはixで終わる別のよく知られた4文字の名前をエコーするために、そして部分的にはGoogle検索での誤検知が多すぎるのを避けるために付けられました。

概要
Yoixテクノロジーは、AT&T研究所の研究者によって開発された汎用動的プログラミング言語の純粋なJavaプログラミング言語実装を提供します。その構文と文法は、Cプログラミング言語とJavaに精通している人にとっては簡単に習得できるはずです。エンドユーザー、Yoixのアプリケーションは、Javaアプリケーションと区別がつかないが、アプリケーションに開発者Yoixが直接Javaで働くよりも単純なコーディング経験を提供する必要があり、書き込みなどの多くのPerlのコードは、Cのコードを書くよりも簡単することができます。

特徴
Yoix言語はオブジェクト指向言語ではありませんが、ほとんどの標準Javaクラスへのアクセスを提供する165を超えるオブジェクト型を利用します。Yoixインタープリターは完全にJavaテクノロジーを使用して構築されているため、Yoixアプリケーションはクロスプラットフォームで、GUIに対応し、ネットワークとスレッドの両方に対応していますが、Yoix開発者は、同じコーディングのより複雑でエラーが発生しやすい部分から隔離されています。 Javaで直接機能します。リフレクションを使用してJava機能にアクセスしないため、その機能へのアクセスを簡素化するだけでなく、Javaの不具合と複雑なJava機能の両方を1回限り、舞台裏でコーディングすることでアプリケーションの信頼性を向上させることで付加価値を提供します。 Yoix言語には、安全なポインター、アドレス指定、宣言、およびグローバル変数とローカル変数が含まれています。ネイティブユーザー関数のサポートに加えて、ユーザーはJavaで記述された独自の組み込み関数を追加できます。

設計
Yoixデザインの2つの中心的な要素は、PostScript言語から借用されています。言語コンポーネントとしての辞書と、公開されたシステムコンポーネントとしての権限で保護された辞書です。直接的な影響はありませんでしたが、Tcl言語とその露出哲学へのオマージュも与える必要が
もう1つの重要なYoix設計要素には、ポインターとアドレス指定が含まれます。Yoix言語でのポインターとポインター演算は、構文的にはC言語で見られるものと似ていますが、Yoixの実装では、範囲外のポインターを使用できません。さらに、アドレス演算子は常に有効で使用可能な結果を​​生成します。
全体として、Yoixの設計では、C言語とJava言語の経験があるプログラマーが言語を簡単に習得できるようにしようとしました。

アプリケーション
Yoixディストリビューションには、YoixWebアプリケーションを構築するためのソフトウェアフレームワークであるYoixWebアプリケーションインスタントテンプレート(YWAIT)が含まれています。上のA Yoix Webアプリケーションが存在するWebサーバとされ、ダウンロードで断片的な実行時Yoixので、必要に応じて通訳で実行しているクライアントマシン。このモデルは、実行時に必要に応じてWebサイトを少しずつダウンロードするクライアントWebブラウザーの使い慣れたモデルに類似しており、アプリケーションのシンプルで効率的な配布と保守を可能にし、ユビキタスWebサーバーとYoixインタープリターのみに依存します。YWAITフレームワークを使用してWebアプリケーションを構築することは、単にいくつかの標準が必要ですUnixの最も近代的で利用可能なツールのオペレーティングシステムのような、LinuxのかはMac OS X、または下のMicrosoft Windowsのアドオンのようなパッケージの助けを借りて、U / Winのを。YWAITベースのアプリケーションのクライアント側はYoixインタープリターのみに依存しているため、プラットフォームに依存せず、Javaが実行されている場所ならどこでも実行されます。Yoixソフトウェア開発哲学は、複数の埋め込み特殊言語の一般的な傾向を回避することで物事をシンプルに保つことを目的としており、YWAITフレームワークでは、シンプルで論理的なソースツリー階層での簡単な増分画面開発が可能であるため、YoixWebアプリケーションの開発は基本:コマンドプロンプトとテキストエディタ。 IDE愛好家は不利かもしれませんが、ソフトウェア開発へのこのSmall Is Beautifulアプローチは、AT&Tで実際に非常に効果的です。

データの視覚化
GUIアプリケーションを構築するためのツールとしての役割に加えて、Yoixテクノロジーはデータ視覚化のいくつかのモードをサポートします。

データマイニング
データ視覚化YDAT(Yoixデータ分析ツール)と呼ばれるモジュールは、リリース2.1.2以降の公共Yoixディストリビューションに含まれています。YDATは、データマネージャーコンポーネントを使用して、イベントプロット、グラフ描画ペイン、ヒストグラムフィルター、表形式の詳細など、いくつかの視覚化コンポーネント間でデータの表示とフィルター処理を調整します。YDATは、AT&T研究所から無料で入手できるもう1つのオープンソースツールであるGraphVizグラフ描画およびレイアウトツールによって生成されたグラフを表示できます。YDATは、Yoix言語レベルで高度に構成可能です。以下の画像は、Yoix YDATのインスタンス化のスクリーンショットです。この例では、車両のオークショントランザクションの分析に使用されています。

グラフ描画
Yoixテクノロジーは、グラフ描画を適切にサポートします。YDATモジュールの一部としての上記のグラフ表示に加えて、Yoix言語のデータ型は、グラフ構造の構築、操作、およびトラバースをサポートします。ネイティブYoix関数は、DOT言語出力と組み込みのDOT言語 パーサーをサポートして、GraphVizレイアウトエンジンとの対話を容易にします。

データのセルを整理する
YChartデータ視覚化ツールキットは、リリース2.2.0でYoixディストリビューションに追加されました。YChartを使用すると、データのセルを整理して表示できます。Yoixディストリビューションに含まれる2つのインタラクティブなYChartアプリケーションは、元素の周期表とUnicodeチャートです。スケジュールで発生する可能性があるように、可変幅セルでYChartを使用することを示すプログラムも、Yoixディストリビューションで利用できます。

インタラクティブな2Dグラフィックス
Yoix分布には、折れ線グラフ、ヒストグラム、統計箱ひげ図などの基本的なデータプロットをレンダリングするための、Byzgrafと呼ばれるYoixパッケージも含まれています。

制限と焦点
現在実装されているように、Yoix言語は解釈されます。つまり、たとえば、Javaモジュール拡張でこれらの計算をコーディングしない限り、計算量の多いアプリケーションにはおそらく適切な選択ではありません。同様に、過度のループもこのインタプリタ言語の制限を表示します。言語の焦点は、インタラクティブなスタンドアロンまたはクライアント/サーバーGUIおよびデータ視覚化アプリケーションです。

ライセンス
Yoixテクノロジーは、Open Source Initiative Common PublicLicenseの下でライセンスされている無料のソフトウェアです。Yoixは、At& TInc。の登録商標です。


1. AT&TホームページからすべてのHTMLディレクティブを抽出し、それらを標準出力に書き込みます。
yoixをインポートします。* 。* ;URL att = open (”https://www.att.com” 、 “r” ); 文字列 テキスト; int cnt = 0 ; while (cnt > = 0 ) { if ((cnt = fscanf (att 、 “” 、 &text )) > 0 )
printf (” n” 、 text ); else cnt = fscanf (att 、 “%* ” ); //破棄}
2.タイトル付きのフレーム(つまり、ウィンドウ)に2つのボタンがあり、タイトル付きの境界線もあるGUIを作成して表示します。1つのボタンを押すとメッセージがポップアップし、もう1つのボタンを押すと例が終了します。ウィンドウはそのコンポーネントにぴったり合うように自動的にサイズ変更され、いくつかの追加コードがその位置を計算して、ウィンドウを表示する前に画面の中央に配置します。
yoixをインポートします。* 。* ;JFrame jf = { 寸法 サイズ = NULL ; //ウィンドウの自動サイズ変更 FlowLayout layoutmanager = { int hgap = 18 ; //0.25インチのギャップ }; 文字列 タイトル = “Yoixの例” ; //ウィンドウのタイトル 文字列の 国境 = 「簡単なボタンの例」。 //ボーダータイトル 配列 レイアウト = { new JButton {
String text = “Press for Message” ;
actionPerformed (ActionEvent ev ) {
showMessageDialog (root 、 “Hello、world。” 、 “メッセージの例” );
} }、 new JButton {
String text = “Press to Exit” ;
actionPerformed (ev ) { // ActionEvent宣言は省略できます
exit (0 );
} }、 }; };//フレームサイズがjfであることがわかったので、フレームの位置を画面の中央に設定します。位置 = 新しい ポイント { int型 のx = (VM 。スクリーン。幅 – JF 。サイズ。幅) / 2 。 INT Y = (VM 。スクリーン。高 – JF 。サイズ。高さ) / 2 。};//表示するjf 。可視 = TRUE ;
3.ここに示すコードは、このページの上部にある言語の説明ボックスに表示されるPNG形式のYoixロゴ画像を生成するために使用されました。コマンドライン引数を使用すると、画像のサイズを指定したり、PNG画像出力を選択したり、画面ウィンドウに表示したりできます。
yoixをインポートします。* 。* ;BuildYoixLogoImage (double height 、 Color color 、 int addshadow ) { //シャドウなしで基本画像を作成 GenImage (double height 、 Color color 、 Font imagefont 、 double scale ) { Image yoixlogo = {
int type = TYPE_RGB_ALPHA ;
色 imgcolor = color ;
ダブル スケール = スケール;
フォント imagefont = imagefont ;
フォント regfont = imagefont 。scalefont (0.5 、 0.5 )。
グラフィック グラフィック = {
フォント フォント = imagefont ;
int textantialiasing = TRUE ; }; 二重 ywd = stringWidth (グラフィクス。フォント、 “Y” );
寸法 サイズ = {
倍の 高さ = 高さ;
倍 幅 = ywd * 5.25 ; }; ダブル OWD = stringWidth (グラフィクス。フォント、 “O” )。
ダブル IWD = stringWidth (グラフィックス。フォント、 “I” );
二重 XWD = stringWidth (グラフィクス。フォント、 “X” )。
ywd + = iwd ;
ywd / = 2.0 ;
paint (Rectangle r ) {
double alpha = 1.0 ;
ダブル alpha2 = 0.3333 ;
int limit = 12 ;
グラフィック {
gsave ();
消去可能(0.0 ); //透明PNG用
rectclip (r );
setrgbcolor (imgcolor 。赤、 imgcolor 。グリーン、 imgcolor 。青)
変換(48 * 本。スケール、 44 * この。スケール);
ため (N = 0 、 N のmoveTo (0.0 、 0.0 )。
SETFONT (これ。imagefont );
//「手作り」カーニング
ショー(”Y” 、 alpha );
if (n == 0 ) {
moveto (ywd 、 0.0 );
show (”o” 、 alpha );
moveto (ywd + owd – 0.3 * iwd 、 0.0 );
show (”i” 、 alpha );
moveto (ywd + owd + 0.8 * iwd 、 0.0 );
show (”x” 、 alpha );
moveTo (ywd + OWD + 0.8 * IWD + XWD 、 -本。imagefont 。高さ * 0.33 )。 SETFONT (これ。regfont );
show (” xAE” 、 alpha );
alpha = alpha2 ; } alpha * = 0.75 ;
回転(30 ); } grestore (); } } }; return (yoixlogo ); } フォント basefont = { 文字列 名 = “ClearviewATT-plain-48” ; }; ダブル 規模 = 高さ / 90.0 ; フォント imagefont = basefont 。scalefont (scale 、 scale ); if (addshadow ) { 画像 ロゴ = GenImage (高さ、 色、 画像フォント、 スケール); image = new Image {
int type = TYPE_RGB_ALPHA ;
画像 ソース = ロゴ;
画像 img = ロゴ;
//画像を畳み込み、(明るくした)影を作成します
Image shadow = new Image {
int type = TYPE_RGB_ALPHA ;
画像 ソース = img ;
配列 カーネル = 新しい 配列 ;
ポインタ ptr ;
for (ptr in kernel ) * ptr = 0.0055 ;
ペイント() {
畳み込み(カーネル); } };
//画像と影を1つの画像
ペイントに結合します(Rectangle r ) {
graphics {
gsave ();
moveTo (0 、 0 );
showimage (これ。IMG );
moveTo (本。IMG 。サイズ。高さ * 0.005 、 本。IMG 。サイズ。高さ * 0.02 )。
showimage (これ。影);
grestore (); } } }; } else { image = GenImage (height 、 color 、 imagefont 、 scale ); } 戻る(画像); }//基本的な引数処理(getoptも使用可能)//最初の引数は画像の高さdouble sz = (argc > 1 ) ? atof (argv ) : 270 ; int shdw = 1 ; int print = 0 ; // 2番目の引数:0/1の場合はシャドウをオフ/オンにし、それ以外の場合は//それが印刷用のファイル名であると想定します。if (argc > 2 ) { if (argv =〜 “^ $” ) { shdw = atoi (argv ); } else { print = 1 ; } }画像 yoixlogo = BuildYoixLogoImage (SZ 、 カラー。ブラック、 (SZ > = 72 ) && shdw )。if (print ) { ストリーム 出力; if ((output = open (argv 、 “w” )) != NULL ) { encodeImage (yoixlogo 、 “png” 、 output ); 閉じる(出力); } } 他 { JFrameの JF = { INT 可視 = TRUE 。 寸法 サイズ = NULL ; 配列 レイアウト = {
新しい JPanel {
寸法 preferredsize = {
double width = yoixlogo 。サイズ。幅;
2倍の 高さ = yoixlogo 。サイズ。高さ; }; 色の 背景 = 色。白;
画像 backgroundimage = yoixlogo ;
int backgroundhints = SCALE_NONE ;
}、 }; }; }

参考文献
^ 「Yoix®スクリプト言語」。インターネットアーカイブウェイバックマシン。2016年7月1日。2015年9月21日のオリジナルからアーカイブ。

外部リンク
オリジナルのAT&T研究所のアーカイブ-研究:Yoixホームページ
Webエンジニアリングワークショップペーパー
ソフトウェア-実践と経験のペーパー

admin

Share
Published by
admin

Recent Posts

稲村優奈

Yūna_Inamura 稲村…

2週間 ago

Y

Y はアルファベットの文字につ…

2週間 ago

早田雄二

Yūji_Hayata YUJ…

2週間 ago

青木雄二

Yūji_Aoki 概要 Ja…

2週間 ago

中田洋介

Yōsuke_Nakata 洋…

2週間 ago

Yıldızköy、アマスィヤ

Yıldızköy,_Amas…

2週間 ago