2022-12-26
「自作プログラミング言語」で検索して発見、高校生が開発し高校生にプログラミングを教える取り組みもステキなプログラミング言語「Laze」!

「Laze - 全ての人に快適なプログラミングを | Laze」

WebAssemblyへとコンパイルして実行するので速度と可用性が期待でき、ブラウザ上での開発もあってとっつきやすい!コンパイラ、エディタ、ウェブサイトもオープンソース on GitHub

越前がにロボコンや各種ロボコンでおなじみ、ライントレースをオンラインでコンテスト形式で楽しめて熱い!

「コンテスト - Laze」

簡単レベル、画面下で「描画エリア」に切り替えて、「コンパイル&実行」を押すとスタート。パラメーターを変えて、最速にチャレンジしよう!


「Lazeで学ぼう | Laze」

早速Lazeを学んでみました。


最初に作る定番「Geo3x3」。緯度経度からの変換に成功!(src on GitHub)


言語スタイルを相互に変換できるのがおもしろい!上記は、日本語(自然言語風)。下記のように英語にも変換可能。

function: 切り捨て(double: number) => (int: result){ int: 整数部 = number; double: 小数部 = number - 整数部; result = number - 小数部; } function: エンコード(double: 緯度, double: 経度, int: レベル) => (string: Geo3x3){ Geo3x3 = "E"; if(経度 < 0.0){ Geo3x3 = "W"; 経度 = 経度 + 180.0; } 緯度 = 緯度 + 90.0; double: 単位 = 180.0; (int: counter = 1;)from(counter == レベル)to(counter = counter + 1;){ 単位 = 単位 / (3.0); int: 横 = 切り捨て(経度 / 単位); int: 縦 = 切り捨て(緯度 / 単位); Geo3x3 = Geo3x3 + (横 + 縦 * 3 + 1); 経度 = 経度 - (横 * 単位); 緯度 = 緯度 - (縦 * 単位); } } function: main() => (){ print(エンコード(35.6585800000000006, 139.745432999999991, 14)); }

予約語や変数名などを母国語に瞬時に変換できると読みやすそうですね!


「PCNこどもプロコン2023 | PCN プログラミング クラブ ネットワーク」

すべてのこどもたちにプログラミングをPCNでは、小中学生のプログラミング&電子工作を表彰しています。Lazeを使ったプログラミングでも応募できますよ!

links
- Laze - 全ての人に快適なプログラミングを | Laze
- 初心者向けプログラミング言語を“高校生”が開発 多言語で書けて、ブラウザ上で実行可能な「Laze」の魅力 - ログミーTech

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS