teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/01/22 08:16

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -3,4 +3,13 @@
3
3
  > メモリやほかの装置にどのように動くかなどのソースコード?などが書いていないければならないのでしょうか?
4
4
 
5
5
  Pythonは知りませんが、C, C++についてはそれらは標準ランタイム・ライブラリの仕事です。
6
- コンパイラ自身ではないです。ただ、他のコンパイラが提供している標準ランタイムを使わない場合は自力で標準ランタイムを開発する必要があります。
6
+ コンパイラ自身ではないです。ただ、他のコンパイラが提供している標準ランタイムを使わない場合は自力で標準ランタイムを開発する必要があります。
7
+
8
+ ---
9
+ 【補足への追記】
10
+ > 命令や関数を自作する場合、コンパイラ自体をいじって新しい命令や関数を作る際にcpuに対してどのような二進数が出力されるかなども自作するのでしょうか?
11
+
12
+ C/C++の場合は関数を追加するだけならコンパイラを修正する必要は全くありません。普通にその関数をC/C++言語で記述してC/C++コンパイラでコンパイルするだけです。
13
+
14
+ if文や各種演算子等のコンパイラ組み込みの構文を追加するような場合はコンパイラ自体の修正が必要です。最終的にはコンパイラがマシン語を出力します。マシン語出力まで修正が必要になるかどうかは修正内容次第です。
15
+ ですが、難易度高いです。コンパイラの改造はプログラミングに熟練するまで封印しておいた方が良いかも知れません。プログラミングの素人が改造したコンパイラが使い物になるとは思えないですし。