なでしこ3 DNCL互換実行モード(ver1)について *

大学入試のセンター試験で利用される仮想的なプログラミング言語に「センター試験用手順記述標準言語(DNCL)」があります。

なでしことDNCLは同じ日本語をベースとしたプログラミング言語であり、文法も非常に似ています。しかし、微妙なところで違いがありました。そこで、なでしこにDNCL互換モードが実装されました。

DNCLから、なでしこ3の豊富な命令(こちら)を使えるので非常に便利です。

DNCLのバージョンについて *

なお、DNCLには公式にアナウンスされているver1と、いまだ具体的な仕様はないものの将来的に採用が決まっているver2の二つがあります。ver1は説明的な構文を採用しており、ver2はPythonに似た仕様となっています。

本ページでは、ver1について解説します。次世代DNCL2についてはこちらをご覧ください。

サンプルプログラム *

なでしこ3とDNCLの使い分け *

まずは、なでしこ3のノーマルモードでいろいろなプログラム製作を楽しんでください。そして、入試対策が必要になったら問題読解の学習でDNCLモードを使うと良いでしょう。

DNCL ver1 について *

  • DNCL ver1について詳細がこちら(PDF)(旧版)より独立行政法人大学入試センターより公表されています。
  • DNCLとなでしこの1:1の対応表もあります。 こちら(PDF)

なでしこのDNCLモードについての補足 *

DNCL ver1 について *

なでしこをDNCL互換モードにするためには、プログラムの冒頭に「!DNCLモード」と記述します。これにより、なでしこがDNCLに沿った動作になるように調整が行われます。この互換モードは上記のDNCL仕様書に基づいたものとなっています。

具体的には、なでしこが次のような動作となります。

  • (1)配列変数のインデックス番号が1起点となります。
  • (2)二次元配列変数にアクセスする際、なでしこでは『変数名[Y][X]』と書くところを『変数名[X,Y]』と記述できます。(つまり、インデックスの指定順序が逆さまになります。)
  • (3)配列変数の初期化が自動的に行われるようになります。なでしこでは実行速度の高速化のために、配列の初期化チェックは省かれますが、入試問題のDNCLでは配列を初期化せずに利用している場面があるため、DNCLモードでは、配列にアクセスする前に必ず初期化チェックが入ります。
  • (4)DNCLの代入文・「もし」文・「繰り返し」文・「間」文が利用可能になります。

『!DNCLモード』の利用例 *

では、具体的に『!DNCLモード』を使ってみましょう。プログラムの冒頭に『!DNCLモード』と記述してください。

   v3.5.3

DNCLモードでは「aとbとを表示する」と『表示』命令を連続で記述可能です。

   v3.5.3
   v3.5.3

DNCLモードでは「nを1増やす」「nを1減らす」命令が使えます。

   v3.5.3

DNCLモードでは「もし」文などの制御構文が、DNCLの「もし」文となります。

   v3.5.3

仕様書で定義されているさまざまな関数や文法要素を定義しています。

   v3.5.3

より具体的な例題は? *

注意点 *

  • DNCLの仕様書に沿って動くよう調整したものです。仮想的な言語であるDNCLの全てのソースコードが動くわけではありません。特に、現在、初期化していない変数の動作が不安定になります。変数は初期化してご利用ください。
  • 明らかな問題があれば、こちらまでご報告ください。

(オマケ)「!DNCLモード」は「💡DNCLモード」と書くことも可能 *

見栄えの問題ですが、「!DNCLモード」は「💡DNCLモード」と書くことも可能です。

   v3.5.3