第二期、神山まるごと高専のITブートキャンプC言語講師、PCN代表で稲作家、まったさんによる、毎日C言語「一日一C」。30日目に登場した構造体(struct)をWirthで記述しました。
One good C code a day. 一日一C。
— Yuichi Ray Matta (@yrm__) March 4, 2025
タイトル「セットに名付け struct」
#30 #caday_yrm pic.twitter.com/xNfoEcLwK5
お米の名前と誕生年を持つ構造体 rice_t を定義して、3データを宣言して表示するC言語のプログラム。
教育用プログラミング言語 Wirth(ヴィルト)の場合、事前の宣言無しで構造をJSON風に記述することになります。
function show(rice) print rice.name, rice.year end rice0 <- { name: "Koshihikari", year: 1956, } rice1 <- { name: "Hinohikari", year: 1989, } rice2 <- { name: "Nikomaru", year: 2005, } show(rice0) show(rice1) show(rice2)
上記を Wirth Playground で記述するか、30.wirth という名前で保存し、コンソールで、下記コマンドで実行できます。(必要、Deno)
deno -A https://code4fukui.github.io/Wirth/cli.js 30.wirth
C--と同様に、Wirthでのオブジェクトは実体のコピーはなく、参照渡し(実体へのポインタが渡されること)のみなので、C言語で参照渡しするための記号「&」が必要なく、要素へのアクセスも「.」のみとなります。
プログラミング言語の本質は、コンピューターのメモリと計算を操ること。手続き型プログラミング言語「IchigoJam BASIC」でその基本に触れておくとスムーズです。
手続き型プログラミング言語(計算、逐次実行、繰り返し、条件分岐、メモリ、マシン語)
↓
構造化プログラミング言語(機能の抽象化、構造化データ、ライブラリ活用)
↓
オブジェクト指向プログラミング言語(ライブラリ開発、チーム開発、並列分散処理)
共通テストで出題される程度の構造化プログラミング言語を目指している「Wirth」と今年の共通テストで使われたプログラミング表記例との比較です。分かりづらく数学と混同しやすい記号を排除しているのが特徴です。
「構造化プログラミング言語 Wirth(ヴィルト) 言語仕様」