- PVSM.RU - https://www.pvsm.ru -
Сегодня, 25 февраля, вышла версия 1.5.0 языка CoffeeScript. В ней впервые появилась базовая поддержка так называемого «грамотного» или «литературного» программирования (literate programming [1]). Концепцию грамотного программирования придумал Дональд Кнут в 1981 году при разработке системы TeX. В отличие от исходного кода на обычном языке программирования, который включает в себя небольшие вкрапления комментариев, грамотное программирование подразумевает написание текстового документа на естественном языке с вкраплениями кода. Многие существующие системы грамотного программирования вообще не зависят от конкретного машинного языка.
Технически, грамотное программирование — система макросов, которая позволяет создать поверх фрагментов кода на любом языке программирования слой абстракций в виде фраз естественного языка, фактически создавая исполняемый псевдокод. Исходный файл одновременно является и исполняемой программой и документом на естественном языке, описывающем её.
Строго говоря, в CoffeeScript 1.5.0 пока не реализована полностью концепция Дональда Кнута — раскрытие макросов не поддерживается, компилятор лишь позволяет совмещать в одном файле с расширением .litcoffee [2] разметку Markdown и код CoffeeScript. Такой файл можно выполнять, как обычный скрипт, а можно открыть в текстовом редакторе, где он будет выглядеть как отформатированный текст с фрагментами кода. Вот скриншот скрипта написанного в новом стиле:
А вот так [3] он выглядит на Гитхабе в виде документа Markdown.
Схему подсветки синтакиса .litcoffee
для TextMate и SublimeText можно скачать здесь [4].
Раньше похожий функционал предоставляла библиотека Docco [5], автором которой, как и самого языка CoffeeScript, является Джереми Ашкеназ. Она позволяет использовать в комментариях разметку Markdown и выводит текст в виде двух колонок — отформатированных комментариев и чистого исходного кода.
Автор: ilya42
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/27996
Ссылки в тексте:
[1] literate programming: http://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D0%BC%D0%BE%D1%82%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
[2] .litcoffee: http://coffeescript.org/#literate
[3] вот так: https://gist.github.com/jashkenas/3fc3c1a8b1009c00d9df
[4] здесь: https://github.com/jashkenas/coffee-script-tmbundle/tree/master/Syntaxes
[5] Docco: http://jashkenas.github.com/docco/
[6] Источник: http://habrahabr.ru/post/170627/
Нажмите здесь для печати.