ときどきの雑記帖 RE* (新南口)
プログラミング言語とは
プログラミング言語とは
色々な「定義」があるのだろうけど、 ぱっと目につくところでどんなものがあるのだろうか? と思いとりあえずうぃきぺをみたら プログラミング言語 - Wikipedia にこんなのがあった。
プログラミング言語(プログラミングげんご、英: programming language)とは、コンピュータプログラムを記述するための形式言語である。
同じページにある 定義 (プログラミング言語 - Wikipedia) にも色々書いてあってそこでは
機能
プログラミング言語はプログラムを書くのに使われる言語であり、それによってコンピュータは何らかの計算やアルゴリズムを実行し、 場合によってはプリンターやロボットなどの外部装置を制御する。
対象
自然言語は人間同士の対話に使われるのに対して、プログラミング言語は人間が機械に指示を与えるのにも使われる。 場合によっては、装置が別の装置を制御するのにも使われる。例えば、PostScriptプログラムは別のプログラムが生成し、 プリンターやディスプレイの制御に使われる。
構成要素
プログラミング言語には、データ構造を定義し操作する構成要素と、実行の流れを制御する構成要素がある。
表現能力
計算理論では、言語はその計算表現能力で分類される(チョムスキー階層参照)。 チューリング完全な言語ならば、同じアルゴリズム群を表現可能である。
英語版からも。
Programming language - Wikipedia
Definitions
A programming language is a notation for writing programs, which are specifications of a computation or algorithm. Some authors restrict the term “programming language” to those languages that can express all possible algorithms. Traits often considered important for what constitutes a programming language include:
Function and target
A computer programming language is a language used to write computer programs, which involves a computer performing some kind of computation or algorithm and possibly control external devices such as printers, disk drives, robots, and so on. For example, PostScript programs are frequently created by another program to control a computer printer or display. More generally, a programming language may describe computation on some, possibly abstract, machine. It is generally accepted that a complete specification for a programming language includes a description, possibly idealized, of a machine or processor for that language. In most practical contexts, a programming language involves a computer; consequently, programming languages are usually defined and studied this way.
ここにこう書いてあるから「PsotScriptはプログラミング言語ではない」というのは間違いだと 言うつもりはあまりなくて(が、疑問には感じた)、そのように主張する(書いた)根拠を 知りたいとは思う。
JIS による定義
情報技術用語データベース でJISでの定義を調べてみたところこんな感じだった。
07.01.03 プログラム言語●プログラミング言語 プログラムを表現するための人工言語。(備) 01.05.10と同一用語。 programming language
01.05.10 プログラム言語●プログラミング言語 プログラムを表現するための人工言語。(参)07.01.06と同じ。 programming language
01.05.01 プログラム●計算機プログラム●コンピュータプログラム アルゴリズムの記述に適した人工言語の規則に従った構文上の単位であって,ある機能若しくは仕事の遂行又は問題の解決のために必要な宣言と文若しくは命令とから構成されるもの。 program●computer program
わかるようなわからないような。
shell script
Stop writing shell scripts - blog.8-p.info
にある
You likely mix a few more languages
Average shell scripts tend to have awk, sed, and nowadays jq. We all have learned them somewhere in our careers. Combining these small tools shows the power of Unix.
However, it makes a barrier for people who don’t know them. Do they need to learn all of them to let computers do certain stuff and/or understand what I’ve written? I don’t think so.
という部分に「あー、そうだよねえ」といった感想を持ったのだけど 数日後に次のようなツイートを見かけて 「タイミングいいな。おい」と思ったこの週末 (「西亭新九郎」すな)。
シェルスクリプトで jq 使うの嫌いな人達もいるのだよなぁ。
— mattn (@mattn_jp) January 13, 2021
或るシェルスクリプト読んでたら、途中にperlが置換用途で出てきて「ワンライナーだしええか……シェルスクリプトだけでやるより見やすいもんな」となったんだけど、スクリプトの最後の最後に `python -mjson.tool` が出てきて、だったら最初からpythonで書けや!!!!!! となりました、どうですか
— moznion (@moznion) January 13, 2021
シェルスクリプトの話に戻ると、(( expr ))
や [[ cond ]]
のような記述を見るにつけ
もうちょっとなんとかならんかったのかと
Abusing C# For Loops For Job Security
Abusing C# For Loops For Job Security という記事を読んでいて、半ばくらいのところで
for (var (i, isEven) = (1, false); i switch { 10 => false, _ => true }; i++, isEven = i % 2 == 0) {
Console.WriteLine($"{i} is even: {isEven}");
}
というのに遭遇して「なんじゃこの『switch』は」と面食らったのだけど (「動作」はなんとなく想像できた)、これが switch 式 - C# リファレンス | Microsoft Docs か。
使わない言語の機能は記憶からすぐ揮発するなあ。
電子書籍
新谷かおる氏の電子書籍、昔は売ってたのに今はないな。
— ドロシー! (@game_book) December 6, 2020
気づいたら売ってない、は紙も同様だけど、新書で揃えたかったのに、もう文庫しかないとか、出版社が変わって、もう持ってるのに未購入扱いになってるとか、いつでも買えると油断してると困ることはちょくちょくある。 pic.twitter.com/v9s5mzyNAl
というのを見かけ、 Amazon.co.jp : 新谷かおる を見ると確かに出てこない。 過去にエリア88といくつかの作品を買っていて、 ファントム無頼の電子書籍(というかKindle版)を (ときどき検索して確認しながら)ずっと待っていたのだけど こんな事態になっていたとは。
そういえば過去に「スティーブズ」の1巻を電子書籍で持っていなかったので買っておくかと探したら見つからず、 結局ほかの出版社からのものが見つかったのでそれで全巻買いなおしたのだけど なんか釈然としないものを感じたなあ。
はじめて出会うコンピュータ科学
消えた話だけではなく増えた方も。
このシリーズが電子書籍になっていたようです。
- 1と0の世界 - 岩波書店
- あいまいな文 - 岩波書店
- こわれている電卓 - 岩波書店
- カッコのない国 - 岩波書店
- どんどん出てくる絵 - 岩波書店
- 山の背くらべ - 岩波書店
- 終わりのない仕事 - 岩波書店
- 人気のあるレストラン - 岩波書店
Amazon(Kindle)含め、いくつかの電子書籍書店で購入可能で、 人気のあるレストラン - 岩波書店 や 人気のあるレストランの電子書籍 - honto電子書籍ストア にある説明によると、発売は2020年の3月ごろの模様。
カッコのない国 はじめて出会うコンピュータ科学4 | 徳田 雄洋, 村井 宗二 | コンピュータ・IT | Kindleストア | Amazon には紙の本の日付しかないすな。
岩波書店の本で電子書籍でも復刊してほしいのは マイクロコンピュータの誕生 - 岩波書店 がありますね。