4. Задача
2,Wonderwall,Intermediate!
4,Tears In Heaven,Beginner!
5,Paint It Black,Intermediate!
8,Iron Man,Advanced!
10,Johnny B. Goode,Intermediate!
12,Can't Stop,Intermediate!
14,Come As You Are,Intermediate!
19,Enter Sandman,Intermediate
7. Domain Specific Languages
• DSL — специализированный язык для
определенной предметной области
• Примеры DSL: Rake, Capistrano, Rails
• Создание DSL: listo
8. listo
• Большой проект на С++ (30+ подпроектов, 50+
разработчиков)
• Единообразие настроек компилятора
• Кросс-платформенная компиляция (Windows,
Unix)
• Интроспекция проекта (проверки, тесты)
12. Success Story
• Решал задачи, прожил ~2 года
• Тонкое управление организацией проекта
• Генерация MS Visual Studio projects/solutions
• Генерация qmake файлов (для сборки в unix)
• Автоматическое включение исходников в проект
13. listo.success?
• Мало фич
• Ошибки проектирования/
реализации
• Запуск на windows без
установки (ruby <= 1.8.6)
• Конкуренция: cmake, qmake
• В итоге был выпилен и
заменен на cmake
• Сообщения об ошибках
14. Ошибки
• Плохая задача для тренировки
• Слишком гибкая семантика
• Проектирование языка listo и интерпретатора
одновременно