Resultados de la búsqueda a petición "compiler-construction"

1 la respuesta

Encontrar una gramática no es LL (1) sin usar métodos clásicos y transformarla en LL (1)

Digamos que tengo esta gramática: S -> A C x | u B A A -> z A y | S u | ε B -> C x | y B u C -> B w B | w A Esta gramática obviamente no es LL (1), que puedo encontrar construyendo la tabla de análisis. Pero, ¿hay alguna forma de demostrar que ...

2 la respuesta

Rango lento para cada uno en Kotlin

Usé el siguiente código para medir el rendimiento de diferentes construcciones de sintaxis en Kotlin fun time(what: String, body: () -> Int) { val start = System.currentTimeMillis() var sum = 0 repeat(10) { sum += body() } val end = ...

3 la respuesta

¿Por qué Intel cambió el mecanismo de predicción de rama estática durante estos años?

Desdeaqu [https://groups.google.com/forum/#!topic/mechanical-sympathy/pMN6TbXwOUc] Sé que Intel implementó varios mecanismos de predicción de rama estática en estos años: 80486 edad: siempre no tomado Pentium4 age: Hacia atrás tomado / Hacia ...

1 la respuesta

Agregar información de línea a mi AST en OCaml

Estoy creando un compilador en OCaml donde la gramática es la siguiente: type expr = | Cons of const | Var of string | List of ( expr list ) | Sum of ( expr * expr ) | Less_than of ( expr * expr ) | Conditional of ( expr * expr * expr ) | ...

1 la respuesta

¿Cómo poner el archivo de encabezado a .tab.h en Bison?

Escribí el encabezado del código bison: %{ #include "foo.h" %}Y definí una estructura llamada 'Foo' en el encabezado. Me gustaría usarlo como tipo de token en Bison. %define api.value.type union %token <Foo*> barEntonces uso-d opción ...

1 la respuesta

¿Por qué NASM no tiene problemas con las instrucciones nemotécnicas válidas como nombres de símbolos en operandos?

Escribí el siguiente programa simple, pero nasm se niega a compilarlo. section .text global _start _start: mov rax, 0x01 mov rdi, 0x01 mov rsi, str mov rdx, 0x03 syscall mov rax, 60 syscall segment .data str db 'Some string' nasm -f elf64 ...

1 la respuesta

Cómo usar Finite Automaton para implementar un escáner

Estoy construyendo un escáner simple. Supongamos que tengo los siguientes tokens definidos para mi idioma: !, !=, !==, <, <<, {Ahora puedo especificarlos usando expresiones regulares, entonces: !=?=? | { | <<?Entonces solíahttp://hackingoff.com ...

1 la respuesta

¿Cuáles son [rendimiento, espera, entrada, retorno] en la gramática de EcmaScript

Muchas producciones en EcmaScript se dan con los siguientes "modificadores": [Yield, Await, In, Return]Aquí están algunos ejemplos: ArrayLiteral[Yield, Await]: ... ElementList[Yield, Await]: ... AssignmentExpression[+In, ?Yield, ?Await]He ...

2 la respuesta

¿Cómo se ejecutan los programas escritos en idiomas interpretados si nunca se traducen al lenguaje de máquina?

Las computadoras solo pueden entender el lenguaje de máquina. Entonces, ¿cómo es que los intérpretes ejecutan un programa directamente sin traducirlo al lenguaje máquina? Por ejemplo: <?php echo "Hello, World!" ;Es un programa simple de Hello ...

1 la respuesta

Compilar un AST para ensamblar

Tengo un árbol de sintaxis abstracta que necesito convertir en ensamblaje para una máquina virtual. No sé cómo hacer esto, así que comencé a usar una cadena de plantillas de cadenas. Ejemplo de pseudocódigo de lo que quiero decir, digamos que se ...