Size: a a a

Compiler Development

2020 June 03

TS

Timur Safin in Compiler Development
Peter Sovietov
Да еще и с одним из немногих VLIW-компиляторов :)
По части компиляции для VLIW за последние несколько лет, если не брать совсем специальные процессоры, то вспоминается только VLIW-бекенд на CompCert для процессоров Kalray.
Certified Compiler Backends for VLIW Processors Highly Modular Postpass-Scheduling in the CompCert Certified Compiler
https://hal.archives-ouvertes.fr/hal-02185883/document
был еще Бабаяновский проект VIP (vectored instructions pointer) в Интеле. Но весь вышел (закрыт еще осенью 2013 года)
источник

TS

Timur Safin in Compiler Development
хотя, стойте - еще же был 3ий осколок МЦСТ в компиляторной части SoftMachines. Но он опять же убит Интелом при покупке в 2017. AFAIK. (или не убит?)
источник

MO

Mar Ort in Compiler Development
Timur Safin
хотя, стойте - еще же был 3ий осколок МЦСТ в компиляторной части SoftMachines. Но он опять же убит Интелом при покупке в 2017. AFAIK. (или не убит?)
насколько я знаю, либо уже умер, либо умирает
источник

M

Max in Compiler Development
Timur Safin
хотя, стойте - еще же был 3ий осколок МЦСТ в компиляторной части SoftMachines. Но он опять же убит Интелом при покупке в 2017. AFAIK. (или не убит?)
убит, но я бы не сказал, что это был vliw
источник

TS

Timur Safin in Compiler Development
Max
убит, но я бы не сказал, что это был vliw
да, это у меня за давностью смешались концепции. Я огляделся и с VIPом его роднили множество стрендов, co-design и JIT.  А так, кажется, VISC больше на ARM похож.
источник

IK

Ivan Kochurkin in Compiler Development
источник

PS

Peter Sovietov in Compiler Development
Заставила еще раз задуматься о необходимости проведения специализированных конференций. Чтобы не тратить в очередной раз 30 минут на объяснение, что такое компилятор, интерпретатор, виртуальная машина, JIT... :)
источник

M

MaxGraey in Compiler Development
Смотрел когда то доклад Дмитрия на HolyJS. Собственно статья это изложение этого доклада. Довольно разжевано было. Но немного проспойлерю компиляция по-честному и TS никакая, что собственно Дмитрий в конце и резюмирует:

«Итак, мы убедились, что компилятор для TypeScript возможно реализовать. Но есть одна проблема — TypeScript является суперсетом над JS. А если ограничить язык на семантике TypeScript и отказаться от динамических объектов и другой магии JavaScript, то вы просто придете к Dart первой версии.»

Хотя на самом деле динами в Dart будь здоров, поэтому там своя VM, хотя есть какая-никая и AOT компиляция

A вот и сам проект
https://github.com/ovr/StaticScript
источник

E

Eugene in Compiler Development
суперсет же должен включать в себя сабсет, а если Тайпскрипт — суперсет джаваскрипта, то вся семантика джаваскрипта должна уже быть в тайпсрипте?
источник

M

MaxGraey in Compiler Development
Eugene
суперсет же должен включать в себя сабсет, а если Тайпскрипт — суперсет джаваскрипта, то вся семантика джаваскрипта должна уже быть в тайпсрипте?
Так оно и есть. А еще TS можно сделать полностью unsound - просто не указывая тип, и по большей часи он будет выводиться как any =)
источник

AK

Andrei Kurosh in Compiler Development
MaxGraey
Так оно и есть. А еще TS можно сделать полностью unsound - просто не указывая тип, и по большей часи он будет выводиться как any =)
Gradual Typing - прекрасная штука
источник

M

MaxGraey in Compiler Development
Hegel например пошел по другому пути и добавил систему типов на основе Хиндли-Милнера
https://github.com/JSMonk/hegel

Но даже там все равно остаются проблемы с тем, что в JS все есть объект который можно динамически расширять прямо во время выполнения
источник

PP

Piu Piu in Compiler Development
MaxGraey
Hegel например пошел по другому пути и добавил систему типов на основе Хиндли-Милнера
https://github.com/JSMonk/hegel

Но даже там все равно остаются проблемы с тем, что в JS все есть объект который можно динамически расширять прямо во время выполнения
он же вроде делал так что типы объектов у него строгие
то есть нельзя как в тайпскрипте свести type A = { a: number, b: number } в type B = { a: number }
источник

KR

K R in Compiler Development
Alexander Tchitchigin
Удивительно, но во всех игровых движках (даже на C++!!!) стараются делать минимум аллокаций и максимум переиспользования объектов. И в сетевом коде тоже, да.
Это же просто рай для Rust.
источник

AT

Alexander Tchitchigi... in Compiler Development
K R
Это же просто рай для Rust.
Да не особенно... 🤷‍♀️
источник

M

MaxGraey in Compiler Development
K R
Это же просто рай для Rust.
Не-а, это скорее рай для всяких zig и прочих ЯП нацеленных на игровую индустрию где memory pooling и bump allocation прямо в ЯП встроен а само управление памятью в максимально явном виде
источник

 P

 ‌‌Gleb Pilipets... in Compiler Development
Ребят, привет всем, а можете подсказать по разбиению текста на токены с помощью лексера?
Язык С++11

Сколько здесь токенов?
123name
источник

MO

Mar Ort in Compiler Development
 ‌‌Gleb Pilipets
Ребят, привет всем, а можете подсказать по разбиению текста на токены с помощью лексера?
Язык С++11

Сколько здесь токенов?
123name
зависит от определения токена
источник

 P

 ‌‌Gleb Pilipets... in Compiler Development
С одной стороны это можно интерпретировать как грамматическую ошибку и два токена - (123, name), а с другой стороны как лексическую и один еррор-токен(123name)
источник

 P

 ‌‌Gleb Pilipets... in Compiler Development
Mar Ort
зависит от определения токена
Ну я не знаю - стандартное😃
источник