Kostiantyn Synyshyn
JS engineer
Компилятор?
by Kostiantyn Synyshyn Front-end Developer at Levi9
Мотивация
Высокоуровневые языки программирования
Модель интерпретации
Модель компиляции
WEB APPS
WEB APPS
BROWSER
OPERATING SYSTEM
BIOS
SILICON
processor commands
assembly
C/ C++
Java
JavaScript
C#
Swift
APPLICATIONS
RUST
компиляторы
C/ C++
const isPrime = num => {
for(let i = 2; i < num; i++)
if(num % i === 0) return false;
return num > 1;
}
const isPrime = num => {
for(let i = 2; i < num; i++)
if(num % i === 0) return false;
return num > 1;
}
Преимущества перед assembly:
M1
Модель интерпретации:
M1
Модель интерпретации:
Program
M2
x86
JavaScript
Application
M1
Program1
Program2
C2-1
Модель компиляции:
Интерпретатор | Компилятор | |
---|---|---|
Для выражения x+1 | Высчитывает значение x+1 | Генерирует программу для просчёта x+1 |
Когда это происходит | Во время выполнения | До выполнения |
Что это усложняет/замедляет | Выполнение программы | Разработка программы |
Время принятия решений | Run time | Compile time |
const result = 3 + 5 * 7
AST - вершины сопоставлены с операторами, а листья - с операндами
Thank you!
Q&A
By Kostiantyn Synyshyn
Intro to compilation theory