ここから本文です

PostScriptは、高級言語、低級言語でいうと、どちらになりますか

アバター

ID非公開さん

2017/11/921:41:21

PostScriptは、高級言語、低級言語でいうと、どちらになりますか

閲覧数:
69
回答数:
4

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

uso********さん

2017/11/1214:29:30

基本的に、狭義には機械語とアセンブラ系が
低水準言語ですのでPostScriptは高水準言語側。

只、PostScriptやFORTHやらは水準自体はあまり
高い方では無いでしょうね。どちらかというと
DSLと呼ばれる側かも[SQL,RegExp等]。
https://ja.wikipedia.org/wiki/%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%...

【蛇足】
高水準言語でも、実行時の制御構造の動的変更が
可能なモノもあります。
・Eval[実行時にソースコード加工・解釈 可]
https://ja.wikipedia.org/wiki/Eval
・Homoiconicity[プログラム≒データ定義の一種]
https://en.wikipedia.org/wiki/Homoiconicity

只、基本的にデバッグし辛い機能なのでLispの
マクロ以外は それ程 表立って使われている訳
でも ありません[現代的なメジャー言語で推奨
される機能とは言い難いです]が、しかし必ずし
も低レベル機能でも無いです。インタプリタの
無い言語では上記2者は実装し難いですし。

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

man********さん

2017/11/1200:53:35

オヤオヤ、誤り回答が出ているので修正しておこう。
>数字の羅列ではなく、英単語などで記述するものは、みな、高級言語らしいので

その定義だと、マシン語以外全て、高級言語になりますね。

しかも、Java仮想マシンのアセンブラみたいに、リアルなCPUには依存しなくて、英単語も使うアセンブラも、高級言語だということになります。

それは、後段の「Java仮想マシンのアセンブラ命令が低級言語である」と認識されている状況に照らせば、モハヤ誤りでしょう。

PostScript(R)言語は、スタック・アーキテクチャの仮想マシンのアセンブラですから、現代の感覚では、低級言語に分類すべきでしょう。

Postscript言語の仕様書をよく読めば、数値も命令(コマンド)も"トークン"と呼ばれるで1語のデータとして仮マシンの連続したスタック形式のメモリ上に並べられて、解釈実行されていることが解ります。
その連続領域にデータと命令語とを積めるので、"ge"か"lt"と"if"という命令語を実行時に選んでスタックに積んで、実行時の制御構造を動的に変えることもできます。
それはFORTH言語由来の、低レベル機能であって、現代的な高級言語にはモハヤ無い特徴です。

<参考>
★PostScriptの条件分岐命令
{EQ,NE,GT,LE,LT,AND}等の演算命令や、サブルーチンに相当するprocがスタックに詰まれていることを前提とする{EXEC,IF,ifelse,for,loop}等の命令があります。
例えば{bool proc1 proc2 IFELSE}が、4トークン(=4×4バイト)の並びだということを示唆していて、手作業でコーディングするだけではなく、同じ4トークンのデータの並びを実行時に生成もできるということです。

また、取り扱いできるデータの種類は、{bool,int,浮動小数点、辞書型、proc}等は在りますが、Java仮想マシン命令のようにデータ型をユーザ定義できる機能はPostscriptにはありません。

any1 any2 EQ
any1 any2 NE
numstr1 numstr2 GE
numstr1 numstr2 GT
numstr1 numstr2 LE
numstr1 numstr2 LT
numstr1 numstr2 AND

any EXEC
bool proc IF
int1 int2 int3 proc FOR
proc LOOP
bool proc1 proc2 IFELSE

★Java仮想マシンの条件分岐命令
if_icmpeq = 159 (0x9f)
if_icmpne = 160 (0xa0)
if_icmplt = 161 (0xa1)
if_icmpge = 162 (0xa2)
if_icmpgt = 163 (0xa3)
if_icmple = 164 (0xa4)


・Adobe社が公開しているPostscript言語仕様
http://www.adobe.com/content/dam/acom/en/devnet/actionscript/articl...

・Postscript入門書
http://tutorial.jp/graph/ps/psman.pdf

khu********さん

2017/11/1007:16:20

高級言語でしょう。

そもそも、現在の我々が目にするコンピュータ言語は、ほぼ全てが高級言語であり、普通に暮らしている人が低級言語に触れる機会はまず有りません。

高級言語 high-level language と低級言語 low-level language は、「何か」からのレベルの違いを分類した言葉なのですが、その「何か」とはコンピュータそのものです。

つまり高級言語はコンピュータから離れており、低級言語はコンピュータと密接に関わっている言語なのです。

アセンブリ言語と機械語は低級言語に分類され、これらは CPU が異なると違う言語になります。
従って、低級言語でプログラムを作る際には、プログラマが、対象の CPU についてきちんと知っていなければなりません。

対して、他のほとんどのプログラミング言語は高級言語であり、違う CPU であっても、ほとんど同じ言語が使えます。
従って、高級言語でプログラムを作る際、プログラマは CPU について詳しく知る必要がありません(その言語にさえ詳しければ良い)。

高級言語のこのような性質は「機械独立 machine-independent」と呼ばれ、高級言語であるための必要条件です。 別の言い方をすると、特定の CPU に依存しない、ということです。

PostScript は CPU の違いに依存しないので、高級言語に分類して差し支え有りません。

tar********さん

2017/11/923:35:09

数字の羅列ではなく、英単語などで記述するものは、みな、高級言語らしいので
Postscript も高級言語に分類されるのではないかと思います。

ただ、この基準でいうと現在使われるプログラミング言語のほとんどは高級言語になるわけで
高級言語、低級言語という分類自体があまり意味をなさないように思います。
今の時代では。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる