ページ 1 / 1
[雑談]プログラミング言語について
Posted: 2012年5月27日(日) 11:17
by kuz
ふとした自分のアホなつぶやきです。
雑談っぽいので[雑談]をつけさせていただきました。
まだまだプログラミングを始めて間もない自分なのでしばしば用語の使い方とか変だったらすいません・・・。
プログラミング言語っていろいろありますよね。JavaとかC#とかの言語は、
中間言語を生成して、実行時に機械語へ~・・・、というような実行形式だということですが。(詳しくないので違うかもしれませんが・・・)
その実行の過程で、どうしてもプログラムの実行速度は、ネイティブに比べて比較的低速になるといわれますが・・・。
そういうマルチプラットフォームに対して柔軟な言語で、
たとえば、Androidでいえば.apkのパッケージであったり、windowsであればインストーラみたいなレベルの時点で
目的となるプログラムを中間コードから、インストールするマシンに適応した機械語に翻訳して実行ファイルを生成する~っていうような言語って
あったりしないんですかね・・・?
そういう言語があったら、androidのスマートフォンみたいな実行環境が極端に異なって、あまり高速ではないマシン上でも、
柔軟かつ高速なプログラムを実行することができるんじゃないかな・・・と。ふと思いました。
Re: [雑談]プログラミング言語について
Posted: 2012年5月27日(日) 11:23
by beatle
つまりC言語のような普通の事前コンパイル型と、JavaのようなJITコンパイル型の中間にあたる言語(というか処理系)があるかどうかということですね。
僕はそういう処理系を知らないのですが、やるとしたらパッケージのインストーラにコンパイラ機能を付ける必要がありますね。
そうなると、インストーラは単にファイルをコピーしたりレジストリを弄ったりするだけでなく、バーチャルマシンと協同で(または独自コンパイラを用いて)コンパイル作業を行うということになりますね。
大変そうですね。
Re: [雑談]プログラミング言語について
Posted: 2012年5月27日(日) 11:26
by kuz
Javaの実行にJavaのランタイムが必要なように。
インストーラー上でのコンパイルを行うためのコンパイラをランタイムとして必要とする~ようなものではどうでしょう・・・
でもそれってソースコード配って「みなさん、これ使いたかったら自分でコンパイルしてください。」っていってるみたいですかね・・・。
Re: [雑談]プログラミング言語について
Posted: 2012年5月27日(日) 11:36
by softya(ソフト屋)
kuz さんが書きました:Javaの実行にJavaのランタイムが必要なように。
インストーラー上でのコンパイルを行うためのコンパイラをランタイムとして必要とする~ようなものではどうでしょう・・・
でもそれってソースコード配って「みなさん、これ使いたかったら自分でコンパイルしてください。」っていってるみたいですかね・・・。
昔は容量の成約等で難しかったですが可能は可能だと思います。
ただ、スマートフォンとかだとコンパイル処理時間やコンパイラ自体の容量が厳しいでしょうね。
それにターゲットで動くコンパイラを先に用意しておく必要があるわけですから、そこも厳しいですね。
【補足】
win/mac/linx間とかなら何とか成る気もしますが、3種類のコンパイラやら環境を入れておくのかってことですよね。
Re: [雑談]プログラミング言語について
Posted: 2012年5月27日(日) 11:43
by softya(ソフト屋)
Javaがインストール時に中間コード→機械語変換に対応していないのはJVMで守られるセキュリティ的な意味も大きそうですね。
やはり、メリット・デメリットの取捨選択の結果なんでしょうね。
Re: [雑談]プログラミング言語について
Posted: 2012年5月27日(日) 11:50
by kuz
そうなのですか・・・。
言語開発・・・には満ちませんが、こうして考えてみるだけでもとても難しいものですね・・・。
ところで、スマートフォンであればコンパイラ自体の容量が厳しいだろうとのことですが・・・。
Androidの端末などは工場出荷レベルで、Javaのランタイムが組み込まれているんではないでしょうか?(間違っていたらすいません・・・。)
そう考えると、あくまでその言語を主体的に取り扱うハードができたとすることを前提ですが、
容量問題についてはほぼ考える必要は無いのではないでしょうか?
Re: [雑談]プログラミング言語について
Posted: 2012年5月27日(日) 11:54
by softya(ソフト屋)
kuz さんが書きました:そうなのですか・・・。
言語開発・・・には満ちませんが、こうして考えてみるだけでもとても難しいものですね・・・。
ところで、スマートフォンであればコンパイラ自体の容量が厳しいだろうとのことですが・・・。
Androidの端末などは工場出荷レベルで、Javaのランタイムが組み込まれているんではないでしょうか?(間違っていたらすいません・・・。)
そう考えると、あくまでその言語を主体的に取り扱うハードができたとすることを前提ですが、
容量問題についてはほぼ考える必要は無いのではないでしょうか?
androidだけに限定して考えればそうですね。
あとは、セキュリティの問題でしょうか。
Re: [雑談]プログラミング言語について
Posted: 2012年5月27日(日) 12:00
by kuz
セキリュティですか・・・言語設計の考察程度でしかプログラミングなどをしたことがないので
そういうことについては、ちんぷんかんぷんです・・・。
とてもいいお話を聞けて楽しかったです、自分は用事があるのでこれを解決として一応雑談を終わりとさせて頂きます。
ありがとうございました。
Re: [雑談]プログラミング言語について
Posted: 2012年5月27日(日) 12:32
by みけCAT
kuz さんが書きました:でもそれってソースコード配って「みなさん、これ使いたかったら自分でコンパイルしてください。」っていってるみたいですかね・・・。
なんだただのLinux向けフリーソフトか。
Re: [雑談]プログラミング言語について
Posted: 2012年5月27日(日) 12:36
by softya(ソフト屋)
みけCAT さんが書きました:kuz さんが書きました:でもそれってソースコード配って「みなさん、これ使いたかったら自分でコンパイルしてください。」っていってるみたいですかね・・・。
なんだただのLinux向けフリーソフトか。
たしかにオープンソース系でインストール時にコンパイルするやつありますね。
一般人向けって感じではないですが。
Re: [雑談]プログラミング言語について
Posted: 2012年5月27日(日) 17:58
by ISLe
スペックの高い開発マシンと同じことをターゲットでやるのは無理があるような。
モノによってはビルドに数時間とかかかると思うのでインストールにそうとうな覚悟が必要になるでしょうね。
PCでもそこそこのアプリケーションソフトだとtarボールからmake&installするのにかなり時間かかりますし。
Androidも基本はJITコンパイル型、速度が欲しいならNDK使って事前コンパイル型ってかたちになってますね。