TGViewer
Just code IT Just code IT @justcodeit_channel · 1.32K subscribers
Post #181 1.71K
Практическое погружение в метакомпиляторы

Практически у каждого из наших читателей с образованием в ИТ был курс теории трансляции или компиляторов. Помните, как в рамках этого курса у доски расписывали порождение строк формальными грамматиками, заданными в EBNF? Как изучали нисходящий и восходящий разборы, упражнялись с генераторами парсеров вроде YACC (BISON)?

Казалось очень необычным, что программа по описанию грамматики может породить достаточно сложный парсер и даже примитивный транслятор входного языка. Удивительно, но идеям метакомпиляторов, т.е. программ, которые создают по формальному описанию компиляторы, уже много лет. Например, метакомпилятор META II был описан в 1964 году, только представьте, как давно это было, и какими были тогда компьютеры!

Еще более удивительно, что META II или его ближайшие потомки могут быть полезны нам и сегодня — например, для прототипирования или быстрой разработки предметно-ориентированных языков. В статье «Tutorial: Metacompilers Part 1» можно в интерактивной форме познакомиться с META II и его внутренним устройством. К концу прочтения материала читатель разработает компилятор META II с расширениями на нём самом.

Несмотря на свою простоту, эта компактная система — чудо инженерной мысли. Код метакомпилятора, записанный на специализированном низкоуровневом языке, невероятно компактен и переносим между системами, но позволяет строить довольно нетривиальные трансляторы за минуты!

Идеи META, конечно, никуда не пропали. Например, они живы в OMeta, современном объектно-ориентированном метакомпиляторе.

#digest
Bayfronttechnologies Tutorial: Metacompilers Part 1 how to build a metacompiler in javascript
  • 🔥 4
  • ❤ 2
More from @justcodeit_channel
  1. Aug 1, 20243D ландшафт в 256 байт Существуют разные виды intro — небольших динамических сцен, генерир…
  2. Jul 3, 2024Как создаются 64 intro Уверены, многие наши читатели слышали про демосцену — вид цифрового…
  3. Jun 14, 2024Создание программы 3D моделирования за неделю Недавно обнаружили на просторах сети занимат…
  4. May 28, 2024VPN, созданный по принципам Secure-by-design Много кто пишет про подход SbD (Secure-by-des…
  5. Apr 24, 2024Наследие Никлауса Вирта Как известно, 1 января 2024 года не стало Никлауса Вирта (Niklaus…
  6. Apr 11, 2024«Моим основным страхом было непонимание, в каком сервисе мою ошибку простят, а в каком буд…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →