【プログラミング】機械語とかアセンブリとか低レベルレイヤーに詳しいプログラマーいる?
■ このスレッドは過去ログ倉庫に格納されています
今の現状でもC++とかで書かれた1つのプログラムでLinuxやMacやWindowsのそれぞれのOSに対応することができないであってる??? C++からコンパイルされる機械語やアセンブラは単一でそれぞれのOSで違う訳され方される的な >>8
C#とかなら一度ilに変換してそのOSの中のランタイムがそれぞれの機械語に翻訳してるってのは知ってる >>11
C#はわかるけどC++は今どうなってるのか教えてほしい そもそもC#とC++で作ったプログラムの動作方法が違うのになんで比較したがるのか >>14
いやしたがるじゃなくて今C++がどうやって動いてクロスプラットフォームに対応してるのかしてないのかが知りたい エミュレータの上で実行したらどこででも動くんじゃね >>17
それでもいいけどC#で機械語に翻訳できるコンパイラ作れば最強じゃね?って思ってきた >>18
そりゃそうだわな
Blenderとかの最近クロスプラットフォームのソフトもそうやってできてんのかな?
最近増えてるけど >>22
まぁまだ技術力が足りなくて作れないけどね
C++だとどうなんだろ?って思ってさ >>15
ざっくりいうとソースコードは共通でコンパイル時に生成される機械語が違う
だから標準ライブラリの範囲とかだとOSが違っても同じコードで同じように動く
その標準ライブラリが何してるかというとOSごとに異なるシステムコールやAPI呼び出しを行ってる
標準以外のライブラリも同様にOSごとの差異を吸収するように作るから、クロスプラットフォーム対応のライブラリ使う場合は概ね共通のソースが使える
吸収しきれない場合は何かしらの注釈がついてたりする コンパイラがそれぞれのプラットフォーム向けにバイナリ吐いてるんじゃないの? まず基本情報くらいは取ろう?
前提知識が終わってる 高レベル言語→C++とか
↓それぞれの環境ごとのコンパイラ、インタープリタ
それぞれの環境ごとの機械語(アセンブリ言語) >>25
>>26
なるほどコンパイラか…
つまりC#から機械語もしくはアセンブリ言語へのコンパイラを作ればC#でもローレベルレイヤー(カーネルだのドライバだの)を扱えるってことか >>28
JavaはC#と一緒でJORだったかのランタイム上でILからコンパイルされてたような気がする ■ このスレッドは過去ログ倉庫に格納されています