4.
プログラミング言語についてです。世の中には本当に様々なプログラミング言語があります。私自身、プログラミング言語を使った開発経験が長いですが、使用したこともない言語が山のようにあります。
全部を全部、まとめて紹介すると、ボリュームがありすぎるので、ここでは控えます。問題からひとつずつ学んでいきましょう。
1.JavaScript は Java のサブセットであり、HTML ファイルの中で記述され、動的なWeb ページを作成するために用いられる。
超有名な引っかけ問題です。名前に騙されて、JavaScript は、まるでJavaのサブセット、まあつまりは互換性がある言語と勘違いされがちですが、 下記、Wikipedia にもあるように、Javaとは異なる言語です。その他の記載については、合っていますが、Javaのサブセットというのは誤りです。
JavaScript(ジャバスクリプト)は、プログラミング言語であり、HyperText Markup Language(HTML)やCascading Style Sheets(CSS)と並ぶ World Wide Web(WWW)の中核技術の一つである。
プロトタイプベースのオブジェクト指向スクリプト言語であるが、クラスなどのクラスベースに見られる機能も取り込んでいる。
利用される場面はウェブサイト、ウェブアプリケーション、バックエンド、デスクトップアプリケーション、モバイルアプリケーションなど、ウェブブラウザからサーバ、デスクトップからスマートフォンまで多岐にわたっている。
Javaと似た名称を持つが、異なるプログラミング言語である(#歴史を参照)。
概要
JavaScriptはWebブラウザNetscape Navigatorに起源を持ち、現在では様々な用途に利用されるプログラミング言語である。
JavaScriptの言語仕様はECMAScriptとして標準化され、実装は各種のJavaScriptエンジンによって提供されている。JavaScriptエンジンの例としてChromium系ブラウザのV8、Mozilla FirefoxのSpiderMonkey、SafariのJavaScriptCoreが挙げられる。
言語仕様を定義するECMAScriptのほかに、WebブラウザへアクセスするためのAPI仕様にDOMなどがある。これらはECMAScriptから独立しており、JavaScriptからも独立した概念である。
プログラミング言語としての特徴
JavaScriptは以下のような様々なスタイルのプログラミングが可能である。
if
・for
などの制御構造による手続き型プログラミングスタイル.prototype
・class
などのオブジェクトによるオブジェクト指向プログラミングスタイルmap
・高階関数などの関数操作による関数型プログラミングスタイル
これらを可能にしているプログラミング言語としての特徴に、以下のことが挙げられる。オブジェクト指向の面では、JavaScriptのオブジェクトはクラスベースではなくプロトタイプベースである。関数型の面では、第一級関数をサポートし関数を第一級オブジェクトとして扱える。
AptanaやEclipse, NetBeans, IntelliJ IDEAなどの統合開発環境はJavaScriptをサポートしており、大規模開発が可能になっている。さらにExt JSなどの本格的なGUIライブラリの登場により、デスクトップアプリケーションと遜色ないユーザインタフェースの構築が可能になった
「JavaScript」『フリー百科事典 ウィキペディア日本語版』。2023年2月9日 (木) 10:41 UTC、URL: JavaScript - Wikipedia
2.Perl は日本人が開発したオブジェクト指向言語であり、国際規格として承認されている。
Perlは、下記にあるように日本人が開発した言語ではありませんし、オブジェクト指向言語でもありません。Perlは、ラリー・ウォールにより開発されました。
日本人が開発されたオブジェクト指向言語といえば、Rubyです。Rubyは、Perlの次の誕生石という由来でRubyと名付けられた言語であり、Perlとは似た部分があります。
よって、誤りとなります。
Perl(パール)とは、ラリー・ウォールによって開発されたプログラミング言語である。実用性と多様性を重視しており、C言語やsed、awk、シェルスクリプトなど他のプログラミング言語の優れた機能を取り入れている。ウェブ・アプリケーション、システム管理、テキスト処理などのプログラムを書くのに広く用いられている。
言語処理系としてのperlはフリーソフトウェアである。Artistic LicenseおよびGPLのもとで配布されており、誰でもどちらかのライセンスを選択して利用することができる。Linux/UNIXやWindows、macOSなど多くのプラットフォーム上で動作する。
特徴
- 強力な文字列処理の仕組みを備えており、正規表現を利用できる。
- 連想配列(ハッシュ)をサポート。
- 多次元データ構造が利用可能。
- 自由度の高い文法。簡潔にプログラムを記述できる。
- 後方互換性は高い。
- 数多くのオペレーティングシステムで利用可能であふ。
- インタプリタであり、コードを利用者がコンパイルする仕組みはない。
- スクリプト言語の中では高い処理速度を持つ。
- Unicode使用を支援する仕組みがある。
- モジュールによる拡張が可能であり、有志によって開発された豊富なモジュールを利用できる(CPANを参照)。
- オブジェクト指向を支援する仕組みがある。
- リファレンスカウント方式によるガーベッジコレクションの仕組みがある。
- 例外処理を利用できる。
- クロージャを利用できる。
- リフレクションを利用できる。
「Perl」『フリー百科事典 ウィキペディア日本語版』。2022年12月27日 (火) 13:52 UTC、URL:
最近大人気のPythonですね。機械学習などAIに活用されたり、大規模データを扱うプログラムに利用されるなど、昨今人気が高い言語です。
LISP言語を参考にした部分もありますが、互換性や言語の関連は特にありません。よって、誤りです。
Python(パイソン)はインタープリタ型の高水準汎用プログラミング言語である。
概要
Pythonは1991年にグイド・ヴァン・ロッサムにより開発されたプログラミング言語である。
最初にリリースされたPythonの設計哲学は、有意なホワイトスペース(オフサイドルール)の顕著な使用によってコードの可読性を重視している。その言語構成とオブジェクト指向のアプローチは、プログラマが小規模なプロジェクトから大規模なプロジェクトまで、明確で論理的なコードを書くのを支援することを目的としている。
Pythonは動的に型付けされていて、ガベージコレクションされている。構造化(特に手続き型)、オブジェクト指向、関数型プログラミングを含む複数のプログラミングパラダイムをサポートしている。Pythonは、その包括的な標準ライブラリのため、しばしば「バッテリーを含む」言語と表現されている。
Pythonのインタプリタは多くのOSに対応している。プログラマーのグローバルコミュニティは、無料のオープンソース リファレンス実装であるCPythonを開発および保守している 。非営利団体であるPythonソフトウェア財団は、PythonとCPythonの開発のためのリソースを管理・指導している。
特徴[編集]
Pythonはインタプリタ上で実行することを前提に設計している。以下の特徴をもっている:
言語
Pythonには、読みやすく、それでいて効率もよいコードをなるべく簡単に書けるようにするという思想が浸透しており、Pythonコミュニティでも単純で簡潔なコードをよしとする傾向が強い。
設計思想
Pythonの本体は、ユーザがいつも必要とする最小限の機能のみを提供する。基本機能以外の専門機能や拡張プログラムはインターネット上にライブラリとして提供されており、別途ダウンロードして保存し、必要なツールはこのツールキットからその都度呼び出して使用する。
Pythonでは「あることをなすのに唯一の良いやり方があるはず」という哲学がある(参考: Perl「やり方は一つじゃない」)。
Pythonではプログラムの文書化(ソフトウェアドキュメンテーション)が重視されており、言語の基本機能の一部となっている。
「Python」『フリー百科事典 ウィキペディア日本語版』。2023年2月6日 (月) 15:47 UTC、
URL: Python - Wikipedia
R言語は、統計解析向けに開発された言語であり、C言語、Schemeなどの影響から開発された言語である。オブジェクト指向にも対応したマルチパラダイム言語です。
この選択肢の通り、オープンソースとして提供されています。この文章が正解となります。
R言語(アールげんご)はオープンソース・フリーソフトウェアの統計解析向けのプログラミング言語及びその開発実行環境である。ファイル名拡張子は.r, .R, .RData, .rds, .rda。
R言語はニュージーランドのオークランド大学のRoss IhakaとRobert Clifford Gentlemanにより作られた。現在ではR Development Core Teamによりメンテナンスと拡張がなされている。
R言語のソースコードは主にC言語、FORTRAN、そしてRによって開発された。
なお、R言語の仕様を実装した処理系の呼称名はプロジェクトを支援するフリーソフトウェア財団によれば『GNU R』であるが 、他の実装形態が存在しないために日本語での慣用的呼称に倣って、当記事では、仕様・実装を纏めて適宜にR言語や単にR等と呼ぶ。
特徴
R言語は文法的には、統計解析部分はAT&Tベル研究所が開発したS言語を参考としており、またデータ処理部分はSchemeの影響を受けている。
言語仕様
Rはマルチパラダイムなプログラミング言語である。広義の関数型言語の一つであるSchemeの影響を受けていて、リストを基本にした内部処理・遅延評価・静的スコープなどの特徴をもつ。インスタンス生成などオブジェクト指向機能ももっている。手続的な表記法にはCの影響がある。いわゆる「Hello, world」プログラムのコードと実行結果は以下とおり。
「R言語」『フリー百科事典 ウィキペディア日本語版』。2022年12月28日 (水) 14:35 UTC、
URL: R言語 - Wikipedia
5.Ruby はビジュアルプログラミング言語であり、ノーコードでアプリケーションソフトウェアを開発することができる。
上の方ですでに話題を出しましたが、Rubyは日本人が開発したオブジェクト指向スクリプト言語です。ノーコードでアプリケーションソフトウェアを開発するようなビジュアルプログラミング言語ではありません。
Ruby(ルビー)は、まつもとゆきひろ(通称: Matz)により開発されたオブジェクト指向スクリプト言語(スクリプト言語とはプログラミング言語の一分類)。
日本で開発されたプログラミング言語としては初めて国際電気標準会議(IEC)で国際規格に認証された事例となった。
概要
Ruby は1993年2月24日に生まれ、1995年12月にfj上で発表された。名称の Ruby は、プログラミング言語 Perl が6月の誕生石である Pearl(真珠)と同じ発音をし、「Perlに続く」という意味で、6月の次の誕生石(7月)のルビーから名付けられた。競合言語として Perl の他に Python があり、「Matz(まつもと) が Python に満足していれば Ruby は生まれなかったであろう」と公式のリファレンスの用語集で言及されている。
機能として、クラス定義、ガベージコレクション、強力な正規表現処理、マルチスレッド、例外処理、イテレータ、クロージャ、Mixin、利用者定義演算子などがある。Perl を代替可能であることが初期の段階から重視されている。Perlと同様にグルー言語としての使い方が可能で、C言語プログラムやライブラリを呼び出す拡張モジュールを組み込むことができる。
Ruby 処理系は、インタプリタとコンパイラが存在する(詳しくは#実装を参照)。
可読性を重視した構文となっている。Ruby においては整数や文字列なども含めデータ型はすべてがオブジェクトであり、純粋なオブジェクト指向言語といえる。
長らく言語仕様が明文化されず、まつもとによる実装が言語仕様に準ずるものとして扱われて来たが、2010年6月現在、JRuby や Rubinius といった互換実装の作者を中心に機械実行可能な形で明文化する RubySpec という試みが行われている。公的規格としては2011年3月22日にJIS規格(JIS X 3017)が制定され、その後2012年4月1日に日本発のプログラム言語では初めてISO/IEC規格(ISO/IEC 30170)として承認された。
フリーソフトウェアとしてバージョン1.9.2までは Rubyライセンス(Ruby License や Ruby'sと表記されることもある。GPLかArtisticに似た独自ライセンスを選択するデュアルライセンス)で配布されていたが、バージョン1.9.3以降は2-clause BSDLとのデュアルライセンスで配布されている。
「Ruby」『フリー百科事典 ウィキペディア日本語版』。2023年2月6日 (月) 15:47 UTC、
URL: Ruby - Wikipedia