2015-06-16

文科省プログラミング教育に関する報告書は何が間違っているのか

概念

二種類のレイヤが混ざってる。あと、スクリプト言語レイヤは要らない。例は突っ込みどころが多すぎるので触れない。

アプリケーション

コンピュータ上で動作するもの全て、システム周りの低レベルプログラムを含めてアプリケーションとして括るのはちょっと乱暴。

何をアプリケーションと呼ぶかはコンテキストによる。

OSを書いてる人間から見ればユーザープロセスは全部アプリケーションだし、twitterから見たらAPIを叩くものは全てアプリケーションだろう。

基本的には外から持ってきたソフトウェア基盤の上に作るもの総称してアプリケーションと呼ぶのがより実態に近いと思う。

スクリプト言語

だいたい合ってる。ただ、高級言語より上にあるのは変。スクリプト言語高級言語に含まれる。

高級言語

だいたい合ってるが、自然言語云々は余計。例えばS式自然言語アナロジーではない。単に比較問題抽象度が高いかどうかだけの区別しかない。

ミドルウェアライブラリー

OS云々は関係ない。OSミドルウェアライブラリーは使う。一般には自分が書いてないソフトウェアコードライブラリと呼び、何かと比較してより低いレイヤにあるライブラリミドルウェアと呼ぶ。

機械語

問題ない

コンパイラインタプリタ

ここが一番まずい。まず、中間コードコンパイラが内部的に処理の段階を分ける仕組みであって、出力ではない。

また、インタプリタソース言語逐次実行するのではなく、正確には中間コード抽象構文木そのもを含む)を逐次実行するものだ。

他のプログラムで実行するコードを生成するものコンパイラ自分自身コードを実行するのがインタプリタ、という区分けがわかりやすいと思う。

ただ、現実的にはインタプリタは内部的にコンパイラを持つし、コンパイラ最適化過程では内部的にインタプリタを使う。

昨今はLLVMみたいに、コンパイラなのかインタプリタなのかコンテキストによって変わるものもあるので、正直区別しても意味がないと思うけど。

結論

この文書には問題がある。そうだな、直るのを待とうか。そんなことより自分コード心配をするんだ!

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん