- Категории
- Источники
- Все курсы
- Разделы
- Книги
How to Create Pragmatic, Lightweight Languages
Создавайте языки программирования как профессионал. Узнайте, как создать что-то полезное в реальном мире. Настоящий язык программирования, с эффективным анализатором и полным компилятором. Язык с собственным редактором. Это не о создании игрушек.
Нет необходимости изобретать велосипед: мы повторно используем компоненты с открытым исходным кодом и организуем их вместе, чтобы получить что-то полезное с целенаправленными усилиями.
Считаете ли вы, что невозможно создать парсер, интерпретатор, редактор и симулятор менее чем в 1000 строк кода? Подумай еще раз.
С помощью этой книги вы научитесь:
Создание инструмента или DSL может упростить вашу жизнь программиста. И когда ваш работодатель слышит магические слова «повысить производительность», это может даже помочь в вашей работе.
Создание эзотерического языка программирования может быть отличным способом выдвинуть новую идею. Чтобы показать, что все можно сделать по-другому.
Труднее создать GPL, но это можно сделать: Kotlin, Go, Ruby, Julia, Rust и т. д. Просто подумайте о множестве новых языков, созданных за последнее десятилетие. Многие из них закрепились в различных сообществах и сделали разработчиков счастливее.
Немного теории и много кода
Когда я учился строить языки, я был разочарован: я мог просто найти базовые учебники здесь и там, но чего не хватало, так это полного курса. Одного курса, чтобы вести меня с самого начала и до конца. Всякий раз, когда я находил что-то более продвинутое, оно было слишком абстрактным: много теории компилятора и недостаточно кода.
Я хотел книгу с четким планом и прагматичным подходом, но ее не было.
Именно тогда я решил научиться создавать языки самостоятельно. Мне потребовались годы профессионального опыта в построении языков. Теперь я могу поделиться этими знаниями, чтобы вы могли научиться создавать свой собственный язык за несколько недель.
Это все еще будет много работы, но вы будете иметь помощь.
Как эта книга поможет вам
В этой книге показано, как повторно использовать существующие библиотеки и платформы для создания необходимой экосистемы для поддержки наших языков.
Раньше затраты на создание механизмов для правильной поддержки языка были очень высокими.
Сегодня, приложив ограниченные усилия, мы можем разработать язык и:
Мы покажем вам, как построить все это и многое другое, разумно определяя мелкие компоненты. Результат будет чем-то солидным, полным и понятным.