Tag: COMPILER-CONSTRUCTION
Escribí un archivo de objeto BPF que incluía una sección y una función estática en línea, definidas de la siguiente manera: static inline __attribute__((always_inline)) bpf_call_func(…); __section(“entry”) bpf_func(…); // llamada a bpf_call_func Funcionaba correctamente y cuando usé llvm-objdump, mostraba que bpf_call_func ya había sido inlineado. Pero cuando definí otra sección en . . . Read more
Estoy intentando crear un lenguaje de programación simple desde cero (intérprete), pero me pregunto por qué debería usar un lexer. Para mí, parece que sería más fácil crear un analizador que analice directamente el código. ¿Qué estoy pasando por alto?
En C++, es común que las funciones tengan parámetros de paso por referencia o paso por puntero, siendo estos últimos también utilizados en C. (Por conveniencia, solo hablaré de punteros en las siguientes discusiones. Pero el problema existe para ambos casos). El problema es, ¿la función almacenará los punteros en . . . Read more
Está bien usar este comando: opt -enable-new-pm=0 -instcount -stats source_IR.ll Obtendré el resultado como: ===————————————————————————-=== … Estadísticas Recopiladas … ===————————————————————————-=== 3 instcount – Número de instrucciones Add 2 instcount – Número de instrucciones And 10 instcount – Número de instrucciones Br 1 instcount – Número de instrucciones Call 10 instcount . . . Read more
¿Puede el compilador realizar alguna inferencia de tipo en la etapa de análisis gramatical? Algunas expresiones como esta: 1+”a” Sé que el compilador puede realizar la inferencia de tipo así: | Add(e1, e2) | Sub(e1, e2) -> unificar Tipo.Int (g env e1); unificar Tipo.Int (g env e2); Tipo.Int Pero quiero . . . Read more