IBM 701というメインフレームコンピュータ[([[https://www.ibm.com/ibm/history/exhibits/701/701_intro.html|IBM 701 Electronic analytical control unit : IBM Archives Retrieved Feb 9, 2020.]])]
\\
1960年代に、最初の対話型シェルが生まれ、タイムシェアリングシステム[([[https://ja.m.wikipedia.org/wiki/%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%B7%E3%82%A7%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0| タイムシェアリングシステム (Time Sharing System, TSS : ウィキペディア(Wikipedia) Retrieved Feb 9, 2020.]])]のリモート操作を可能にするために開発されました。このシェルスクリプトは、実行中のコンピュータプログラムを制御するプログラムでした。
TRAC言語のCalvin Mooersは、「command substitution」を発明しました。「command substitution」はスクリプト内にコマンドを埋め込む機能です。[([[https://web.archive.org/web/20010425014914/http://tracfoundation.org/trac64/procedure.htm | Mooers, Calvin. "TRAC, A Procedure-Describing Language for the Reactive Typewriter". Archived from the original on 2001-04-25. Retrieved Feb 9, 2020.]])]
Louis Pouzin [([[https://ja.m.wikipedia.org/wiki/%E3%83%AB%E3%82%A4%E3%83%BB%E3%83%97%E3%82%B6%E3%83%B3| ルイ・プザン : ウィキペディア(Wikipedia)Retrieved Feb 9, 2020.]])]は、1964年頃にCTSS[([[https://ja.m.wikipedia.org/wiki/CTSS|CTSS : ウィキペディア(Wikipedia)Retrieved Feb 9, 2020.]])]用のRUNCOMと呼ばれるコマンドスクリプトの原型を作成しました。\\
{{:local:classroom:2018:kouki:development:program_language:scripting_language:75cb1b14-1660-488f-95fc-48d1641306f1.gif?200|}}\\
IBM 7094[([[https://multicians.org/thvv/7094.html|The IBM 7094 and CTSS by Tom Van Vleck Retrieved Feb 9, 2020.]])]
\\
MIT[([[https://ja.m.wikipedia.org/wiki/%E3%83%9E%E3%82%B5%E3%83%81%E3%83%A5%E3%83%BC%E3%82%BB%E3%83%83%E3%83%84%E5%B7%A5%E7%A7%91%E5%A4%A7%E5%AD%A6|マサチューセッツ工科大学 : ウィキペディア(Wikipedia)Retrieved Feb 9, 2020.]])]のStuart Madnick[([[https://en.m.wikipedia.org/wiki/Stuart_Madnick|Stuart Madnick : ウィキペディア(Wikipedia)Retrieved Feb 9, 2020.]])]は、1966年にIBMのCP/CMS[([[https://en.m.wikipedia.org/wiki/CP/CMS| CP/CMS : ウィキペディア(Wikipedia)Retrieved Feb 9, 2020.]])]用にスクリプト言語を書きました。 彼はこの1連の処理をCOMMANDと呼び、後にEXEC[([[https://en.m.wikipedia.org/wiki/CMS_EXEC|CMS EXEC : ウィキペディア(Wikipedia)Retrieved Feb 9, 2020.]])]と名付けました。[([[http://www.leeandmelindavarian.com/Melinda/neuvm.pdf| Varian, Melinda. "VM AND THE VM COMMUNITY: Past, Present, and Future" (PDF). Retrieved Feb 9, 2020.]])]
Multics[([[https://ja.m.wikipedia.org/wiki/Multics|Multics : ウィキペディア(Wikipedia)Retrieved Feb 9, 2020.]])]ではTRAC言語を由来として、スクリプト内にコマンドを埋め込む機能を「active function」と呼びました。[([[https://www.multicians.org/mga.html| Van Vleck, Thomas (ed.). "Multics Glossary – A — (active function)". Retrieved Feb 9, 2020.]])]
TclやLuaなどの言語は、あらゆるアプリケーションに組み込むことができる汎用スクリプト言語として設計されました。\\
Visual Basic for Applications(VBA)などの他の言語は、システムの自動化機能との強力な統合を実現しました。\\
アプリケーションごとに新しい言語を開発する代わりに、このような汎用スクリプト言語を組み込むことで、アプリケーション開発者は言語翻訳プログラムをゼロからコーディングする必要なく、学んだスキルを活用できます。
=====調査後の所感=====
Swiftというマルチパラダイムの言語を触っていて、1月からの案件でpythonとjavascriptを書くことになりました。どちらの言語も短い時間ですが書いたことがあり、スクリプト言語と呼ばれていることがたまにありました。自分の中で明確には分けられていなかったので、今回調べました。
調べてみての感覚として、スクリプト言語というのは、ソフトウェアとセットで設計されていると思いました。
開発インフラ限らずバッチ処理やシェルを使用することが多いかと思います。そのシェル等の記述の発展にpythonの使用やjavaScriptがあると思うと考え深いです。
プログラムを書くということ、マウスやキーボードで操作をするということ、自分には同じことのようにも思えてきました。
コンパイラ言語やインタプリタ言語などを引き続き調べることでさらにわかることもあると思いました。最終的にはマルチパラダイムまで到達したいです。
今回はかなりコンピュータさんに近づいてしまって、機械的で、専門用語しかない文章になってしまったので、絵を加えるなどしていきたいとも考えています。
※この記事は今後も加筆する可能性が高いです。
\\
\\
**//Thank you for reading!!!!//**
**[[local:koki:research:2020:information_technology|previous]]**
**[[local:classroom:2018:kouki|home]]**
=====参考文献=====