W.Script言語。 パート2-高水準言語、またはなぜC ++が必要なのか

私は最近、企業言語R.Script LLPでHello、worldを書くことのレビューを公開しました。 この言語は、当社の言語の中で最速であるため、当社では低レベルと見なされています。 次に、その変更について説明します-R.Script M HPL(変更されたHighProgrammingLanguage)。



これらの言語は何のために設計されていますか?



WSクラスのすべての言語は、タスクのパフォーマンスを高速化するために、既製の関数セットを使用して記述されています。 言語は純粋なアセンブラーで記述されているため、優れたパフォーマンスを発揮します。 マイクロコントローラはこれらの言語とプロセッサロジックでプログラムされることが多いため、R.Scriptの主なバイアスはパフォーマンスのために作成されました。 HPL言語のパフォーマンスはC言語とほぼ同等ですが、その使用には大きなプロセッサとメモリリソースが必要です。 サードパーティの言語を使用するよりも、独自の言語を開発し、維持する方が、私たちにとって便利で必要な独自の方法ですべてを行うため、より有益です。





序文またはこの記事が書かれている理由



この記事は、私たちの会社で特定のタスクを実装する方法と開発状況を示すためだけに書かれています。 WSプログラミング言語(R.Script、L.Script、W-Script)は、当社でのみ使用され、完全な開示の対象ではなく、構文およびその他の機能に精通しているだけです。



R.Script変更レビュー



Hello、worldを書く


Hello、worldと書くのは、LLPよりはるかに簡単です。 ここでは、言語の変更が最初にロードされます。

LOAD(INCLUDE{SCRIPT[~SYSTEM:.add>highlevel#]}); //Loading file C:/R.Script/highlevel.add
      
      





そして、実際に言語を使用します。 この変更では、本体がすでに提供されています。

 source .main { //Some code there }
      
      





そして、組み込みの出力関数を使用します。

 var(int) conid = Console.OpenWindow(title="Hello,world",desp="Example application"); Console.WriteLine("Hello,world"); Console.CloseWindow(id=conid);
      
      





そして、それほど賢明ではないプログラムを手に入れました。それは、WindowsのコンソールとLinux / Macのターミナルを使用して、ほぼすべてのプラットフォームで機能します。

 //R.Script 2012 M HPL Hello world source .main { var(int) conid = Console.OpenWindow(title="Hello,world",desp="Example application"); //  ,    Console.WriteLine("Hello,world"); //  ,     App.Wait(5s); // 5     ( App.Sleep) Console.CloseWindows(id=conid); //   }
      
      





今すぐ練習


さて、Google Translateサービスを使用し、そのAPIを使用してコンソールで翻訳スクリプトを作成することにしました。

 create function .getTranslatedText (pagecode) { if (var.isset=pagecode and var.!empty==pagecode and String.Search(result,"translatedText")==TRUE) { var(str) result = String.Cut(mode="searchline","\"translatedText\" :\"(.*)\"","intext"); //        return result; } else { if (Console.IsOpened()==FALSE) var(int) conid = Console.OpenWindow(); //    -  Console.WriteLine("translated text get error"); // use finish(conid); //   .  use   ,          return 0; } } create function .finish(consoleid) { if (Console.IsOpened==FALSE) App.Exit(); //,    ,   -  if (var.!isset=consoleid and var.empty=consoleid and Console.WindowExists(consoleid)) App.Exit(); //     Console.WriteLine(text=" ,     ",window=consoleid); Console.WaitKey(); App.Exit(); } source .main { include("SYSTEM:.dir>HTTP:.hpl>prot"); // ,     HTTP ( C:\Source\HTTP\prot.hpl) conid = Console.OpenWindow(title="- ","Powered by Google Translate"); var(arr) messages = Array.Create(0>"  !    ",1>"   ",2>"  :",3>"  ,     ,  F2    "); var(int) messnum = 0; Console.WriteLine(messages[messnum]); var(str) texttotrans = Console.ReadLine(); Console.WriteLine(messages[messnum++]); result = HTTP.GetHTML(url="https://www.googleapis.com/language/translate/v2?key=MY_KEY&source=en&target=ru&q="..String.Change(" ">"%20",texttotrans),mode="secure"); var(str) return = use getTranslatedText(result); Console.WriteLine(messages[messnum++].."\n\r"..return.."\n\r"..messages[messnum++]); var(int) userkey = Console.ReadKey(); if (userkey==K_KEY_F2) { App.ClearVars(); App.StartMain(); } else App.Exit(); }
      
      





その結果、コンソールのマルチプラットフォームの英語-ロシア語翻訳者を獲得しました。 これが実用的なアプリケーションです。 このコードでは、この言語のほぼすべての機能を確認できます。 不明な点がある場合は、質問してください。



著者から


この言語は実際にはほとんど使用されません。 メインのL.ScriptおよびW.Scriptプラットフォームで使用されます。次の記事で説明し、その内容と理由を詳細に書き留め、それらのコードをC ++コードと比較し、その利点を比較します。 また、組み込みのL.Scriptライブラリを使用したGUIアプリケーションの構築についても説明します。



継続するには...



All Articles