Comments 12
Здорово! Прям как веб-сервер с питанием от картошки.
Cделайте еще backend для llvm :)
Cделайте еще backend для llvm :)
+5
Кстати, была идея транслировать уже существующий ассемблер или llvm-биткод, но решил, что не осилю.
0
Как всегда, все уже сделано до нас www.jeremyroman.com/2012/12/11/building-a-brainfuck-compiler-with-llvm/index.html
0
А ведь трансляцию из этого Ассемблера в Brainfuck-инструкции можно еще и оптимизирующей сделать...)
0
Под ассемблером LCC понимается промежуточное представление кода, если да, то в каком виде он хранится, если в текстовом, то можно примерчик?
0
Да, это текстовое представление. Например, программа:
компилируется в:
По структуре байткода есть хорошая книжка: Building a C-based processor
int add(int a, int b) {
return a + b;
}
int main() {
int sum;
sum = add(1, 2);
return sum;
}
компилируется в:
Скрытый текст
export add
code
proc add 0 0
ADDRFP4 0
INDIRI4
ADDRFP4 4
INDIRI4
ADDI4
RETI4
LABELV $1
endproc add 0 0
export main
proc main 8 8
CNSTI4 1
ARGI4
CNSTI4 2
ARGI4
ADDRLP4 4
ADDRGP4 add
CALLI4
ASGNI4
ADDRLP4 0
ADDRLP4 4
INDIRI4
ASGNI4
ADDRLP4 0
INDIRI4
RETI4
LABELV $2
endproc main 8 8
По структуре байткода есть хорошая книжка: Building a C-based processor
+3
Эти проекты встречали? kidsquid.99k.org/compilers/compilers.html
+1
Sign up to leave a comment.
Assembler для Brainfuck