coursehunter
  • Категории
    • Frontend
      • Angular
      • HTML
      • CSS
      • JavaScript
      • Vue
      • jQuery
      • React
      • AngularJS
      • Backbone
      • TypeScript
      • Ember
      • Next.js
      • Elm
      • Svelte
      • Single SPA
      • Three.js
      • D3.js
      • RxJS
      • WebGL
      • barba.js
    • Backend
      • PHP
      • Python
      • Ruby on Rails
      • Yii
      • Laravel
      • SQL
      • Ruby
      • Symfony
      • Java
      • Scala
      • Node.js
      • MongoDB
      • Golang (Google Go)
      • Slim
      • Silex
      • Firebase
      • C Sharp (C#)
      • Deno
      • Redis
      • Django
      • NestJS
      • Spring
      • Spring Boot
      • Spring Data
      • Spring Cloud
      • Spring Security
      • Spring Integration
      • Spring HATEOAS
      • Spring MVC
      • Elixir
      • Phoenix
    • System programming
      • Rust
      • WebAssembly
    • Marketing
      • SEO
    • Video and 3D
      • Blender
      • Cinema 4D
      • ZBrush
    • Graphic
      • Figma
      • Sketch
      • Photoshop
      • After Effects
      • Illustrator
      • Adobe XD
      • Lightroom
      • CorelDRAW
    • DevOps
      • AWS
      • Azure
      • Docker
      • Git
      • GitHub
      • Gitlab
      • Google Cloud
      • Grafana
      • Kubernetes
      • Jenkins
      • Terraform
    • Tools
      • GraphQL
      • Flux
      • Webpack
      • Ansible
      • Gulp
      • Grunt
      • Visual Studio Code
      • VIM
      • OpenCV
      • Salt
      • SVN
      • Atom
      • Elasticsearch
      • Electron
      • Chrome DevTools
      • Yarn
      • Babel
      • Grep
      • npm
      • Gatsby
      • PhpStorm
      • Webflow
      • Hibernate
      • Socket.io
      • Bash
    • Разработка мобильных приложений
      • React Native
      • Ionic
      • Swift
      • Progressive Web App (PWA)
      • Core Data
      • Xamarin
      • NativeScript
      • Dart и Flutter
    • Gamedev
      • Unity
    • CMS
      • Wordpress
      • OpenCart
      • Drupal
      • Joomla
      • 1C-Bitrix
      • MODX
      • Magento
      • Shopify
    • Blockchain
      • Криптовалюты
      • Decentralized Applications (dApps) (Web 3)
    • Тестирование
      • Postman
      • Selenium
      • Appium
      • Protractor
      • WebdriverIO
      • Cypress
      • Playwright
    • Другое
      • WebRTC
      • OpenGL Shading Language (GLSL)
    • Подготовка к собеседованию
    • Обработка и анализ данных
    • Информационная безопасность
      • Этический взлом / Тестирование на проникновение
    • Английский язык
    • Конференции
  • Источники
  • Все курсы
    • Популярные
    • Бесплатные (100+ Курсов)
  • Топики
  • Книги
    • Популярные
Sign Up Sign in
📌 Очень жаль, что всем известный персонаж решил начать войну. Мы молимся за Украину и за мир!
Главная страница Категория другое [Книга] Как создавать прагматичные, легкие языки

[Книга] Как создавать прагматичные, легкие языки

How to Create Pragmatic, Lightweight Languages

Federico Tomassetti
[Книга] Как создавать прагматичные, легкие языки Загрузить
Источник
Federico Tomassetti
Категория
Другое
Дата добавления
12/06/2020
Язык
English

Создавайте языки программирования как профессионал. Узнайте, как создать что-то полезное в реальном мире. Настоящий язык программирования, с эффективным анализатором и полным компилятором. Язык с собственным редактором. Это не о создании игрушек.


Нет необходимости изобретать велосипед: мы повторно используем компоненты с открытым исходным кодом и организуем их вместе, чтобы получить что-то полезное с целенаправленными усилиями.

Считаете ли вы, что невозможно создать парсер, интерпретатор, редактор и симулятор менее чем в 1000 строк кода? Подумай еще раз. 

С помощью этой книги вы научитесь:

  • разрабатывать инструменты для языка, такие как механизм статического анализа для Java или переносчик из Python в JavaScript;
  • создать предметно-ориентированный язык (DSL), язык, который действительно хорош в конкретных задачах, таких как HTML или SQL;
  • создать язык общего назначения (GPL), язык, подходящий для любой задачи, такой как C # или Ruby;

Создание инструмента или DSL может упростить вашу жизнь программиста. И когда ваш работодатель слышит магические слова «повысить производительность», это может даже помочь в вашей работе.

Создание эзотерического языка программирования может быть отличным способом выдвинуть новую идею. Чтобы показать, что все можно сделать по-другому.

Труднее создать GPL, но это можно сделать: Kotlin, Go, Ruby, Julia, Rust и т. д. Просто подумайте о множестве новых языков, созданных за последнее десятилетие. Многие из них закрепились в различных сообществах и сделали разработчиков счастливее.

Немного теории и много кода

Когда я учился строить языки, я был разочарован: я мог просто найти базовые учебники здесь и там, но чего не хватало, так это полного курса. Одного курса, чтобы вести меня с самого начала и до конца. Всякий раз, когда я находил что-то более продвинутое, оно было слишком абстрактным: много теории компилятора и недостаточно кода.

Я хотел книгу с четким планом и прагматичным подходом, но ее не было.

Именно тогда я решил научиться создавать языки самостоятельно. Мне потребовались годы профессионального опыта в построении языков. Теперь я могу поделиться этими знаниями, чтобы вы могли научиться создавать свой собственный язык за несколько недель.

Это все еще будет много работы, но вы будете иметь помощь.

Как эта книга поможет вам

В этой книге показано, как повторно использовать существующие библиотеки и платформы для создания необходимой экосистемы для поддержки наших языков.

Раньше затраты на создание механизмов для правильной поддержки языка были очень высокими.

Сегодня, приложив ограниченные усилия, мы можем разработать язык и:

  • получить быстрый парсер из краткого определения грамматики;
  • получить валидацию и преобразование модели с небольшим количеством кода;
  • генерировать байт-код JVM и получать совместимость с другими языками JVM или генерировать язык с помощью LLVM;
  • получить богатые редакторы с подсветкой синтаксиса и автозаполнением.

Мы покажем вам, как построить все это и многое другое, разумно определяя мелкие компоненты. Результат будет чем-то солидным, полным и понятным.

Посмотреть больше

Комментарии

Только зарегистрированные пользователи могут комментировать️

Ресурс видеоуроков программирования для front и back end разработчиков. Бери знания своего профиля у нас, ведь мы самые лучшие блеать. Серьезно.

Категории
Все категории HTML CSS JavaScript React.js Python SQL Java Node.js Другое TypeScript
Источники
Все источники codewithmosh (Mosh Hamedani) frontendmasters itvdn Kent C. Dodds OTUS softwaretesting udemy videosmile webformyself ЯЮНИОР (ijunior.ru)
Telegram Форум Пакеты Контакты FAQ
Темы:
Язык: