Resultados da pesquisa a pedido "compiler-construction"

1 a resposta

Encontrar uma gramática não é LL (1) sem usar métodos clássicos e transformá-la em LL (1)

Digamos que eu tenho essa 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 não é LL (1), que posso encontrar na construção da tabela de análise. Mas há alguma maneira de provar que ...

2 a resposta

Escala lenta paraCada um em Kotlin

Eu usei o código a seguir para medir o desempenho de diferentes construções de sintaxe no Kotlin fun time(what: String, body: () -> Int) { val start = System.currentTimeMillis() var sum = 0 repeat(10) { sum += body() } val end = ...

3 a resposta

Por que a Intel mudou o mecanismo de previsão de ramificação estática ao longo desses anos?

Deaqui [https://groups.google.com/forum/#!topic/mechanical-sympathy/pMN6TbXwOUc] Eu sei que a Intel implementou vários mecanismos de previsão de ramificação estática nos últimos anos: 80486 idade: sempre não tomada Pentium4 age: Tomada para ...

1 a resposta

Adicionando informações de linha ao meu AST no OCaml

Estou criando um compilador no OCaml, onde a gramática é a seguinte: 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 a resposta

Como colocar o arquivo de cabeçalho em .tab.h no Bison?

Eu escrevi o cabeçalho do código bison: %{ #include "foo.h" %}E eu defini uma estrutura chamada 'Foo' no cabeçalho. Eu gostaria de usá-lo como tipo de token no Bison. %define api.value.type union %token <Foo*> barEntão eu uso-d opção ...

1 a resposta

Por que o NASM não tem problemas com mnemônicos de instruções válidos como nomes de símbolos em operandos?

Eu escrevi o seguinte programa simples, mas o nasm se recusa a compilá-lo. 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 a resposta

Como usar o Finite Automaton para implementar um scanner

Estou construindo um scanner simples. Suponha que eu tenha os seguintes tokens definidos para o meu idioma: !, !=, !==, <, <<, {Agora eu posso especificá-los usando expressões regulares, portanto: !=?=? | { | <<?Então eu ...

1 a resposta

O que são [Rendimento, Espera, Entrada, Retorno] na gramática EcmaScript

Muitas produções em EcmaScript são fornecidas com os seguintes "modificadores": [Yield, Await, In, Return]Aqui estão alguns exemplos: ArrayLiteral[Yield, Await]: ... ElementList[Yield, Await]: ... AssignmentExpression[+In, ?Yield, ?Await]Eu ...

2 a resposta

Como os programas escritos em idiomas interpretados são executados se nunca são traduzidos para linguagem de máquina?

Os computadores podem entender apenas a linguagem de máquina. Então, como os interpretadores executam um programa diretamente, sem traduzi-lo para a linguagem de máquina? Por exemplo: <?php echo "Hello, World!" ;É um simples programa Hello World ...

1 a resposta

Compilando um AST para montagem

Eu tenho uma árvore de sintaxe abstrata que preciso converter em assembly para uma máquina virtual. Como não sei como fazer isso, comecei a usar uma cadeia de modelos de string. Exemplo de pseudo-código do que quero dizer, digamos que ...