あなたは比較的主観的な質問をしています。それは、用語、その方言、および視点についての質問です。
たとえば、Lisp は高水準言語ですか、それとも低水準言語ですか? 実装が Lisp マシンで実行されている場合はどうなるでしょうか?
多くの場合、人々が低レベルから高レベルへのスペクトルを構築しようとするとき、彼らが定量化しようとしているのは、「抽象化」の程度ではなく、「ハードウェアへの近さ」の程度です。
ハードウェアへの実装の近さにカウントされる品質:
- プログラマは、データのメモリ レイアウトを直接制御し、実行時にデータのメモリ アドレスにアクセスできます。
- 数学演算は、ハードウェアの観点から定義されるか、さまざまなタイプのハードウェアに準拠するために大まかに定義されます。
- 動的メモリ割り当てを提供するライブラリがあるかもしれませんが、動的メモリの使用は手動です。
- 文字列操作時のメモリ管理は手動です。
ハードウェアからの実装の抽象化にカウントされる逆の品質:
- プログラマーは、データのアドレス (ポインターではなく参照) に実行時にアクセスできません。
- 数学演算は、特定のハードウェアに結び付けられていない特定の用語で定義されます。(たとえば、ActionScript 3 は、
Number
オーバーフローが発生するのではなく、整数から浮動小数点に自己変換する型をサポートしています。)
- 動的メモリの管理は、おそらく参照カウント、ガベージ コレクション、または別の自動化されたメモリ管理スキームを通じて、環境によって処理されます。
- 文字列操作中のメモリの管理は、常にプログラマから隠され、環境によって処理されます。
他の特性により、言語は、それが実行されるハードウェアに比べて非常に抽象的になる可能性があります。
このような要因を念頭に置いて、あなたが書いたスペクトルを次のように修正します。
最低レベル:
アセンブリよりも高レベルのフロー制御を備えた低レベル言語:
高水準言語:
最上位言語:
Python は意図的に 2 回表示されます。コードの記述方法に応じて、範囲の一部に広がります。