README.org
March 12, 2013 · View on GitHub
-
Common Lisp The Laguage Second Edition by Guy Steel with some corrections from: http://bc.tech.coop/cltl2-ansi.htm
-
Read online http://filonenko-mikhail.github.com/cltl2-doc/en/clm.html
-
Download pdf http://github.com/filonenko-mikhail/cltl2-doc/enpdf/cltl2.pdf
-
Bug reports, questions, wishes
If you find errors send me email to filonenko.mikhail
Also you can find me on
#+BEGIN_VERSE
freenode.org #lisp asvil
asvil@jabber.ru
#+END_VERSE
- Source code
Tarball: https://github.com/filonenko-mikhail/cltl2-doc/tarball/master
- Compilation
: git clone --depth 1 https://github.com/filonenko-mikhail/cltl2-doc : cd cltl2-doc-ru | | pdf (pdflatex) | html (tex4ht) | |---------+----------------------+-----------------------| | English | ./makepdf.sh | ./makehtml.sh | | | xpdf rupdf/cltl2.pdf | firefox en/index.html | |---------+----------------------+-----------------------| | Russian | ./rumakepdf.sh | ./rumakehtml.sh | | | xpdf rupdf/cltl2.pdf | firefox ru/index.html | |---------+----------------------+-----------------------|
-
Перевод книги Common Lisp The Language Second Edition by Guy Steele на русский язык
-
Читать онлайн
http://filonenko-mikhail.github.com/cltl2-doc/ru/clm.html
- Скачать pdf
http://github.com/filonenko-mikhail/cltl2-doc/rupdf/cltl2.pdf
- Ошибки, вопросы, пожелания
Если вы нашли ошибку или желаете улучшить перевод, то пришлите мне письмо
на filonenko.mikhail
Также меня можно найти здесь:
#+BEGIN_VERSE
freenode.org #lisp asvil
asvil@jabber.ru
#+END_VERSE
-
Участие в переводе Участие приветствуется любое. Для этого можно склонировать репозитарий и править *.tex исходники.
-
Исходный код
Оригинал на английском языке: http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/lang/lisp/doc/cltl/cltl_src.tgz
Обновленный Даниелом Херрингом LaTeX код: http://git.androdna.com/?p=lisp/cltl2
Сжатый архив: https://github.com/filonenko-mikhail/cltl2-doc/tarball/master
Репозитарий: https://github.com/filonenko-mikhail/cltl2-doc
- Компиляция
: git clone --depth 1 https://github.com/filonenko-mikhail/cltl2-doc-ru : cd cltl2-doc-ru | ./makeall.sh | pdf (pdflatex) | html (tex4ht) | |--------------+----------------------+-----------------------| | Русский | ./rumakepdf.sh | ./rumakehtml.sh | | | xpdf rupdf/cltl2.pdf | firefox ru/index.html | |--------------+----------------------+-----------------------| | Английский | ./makepdf.sh | ./makehtml.sh | | | xpdf rupdf/cltl2.pdf | firefox en/index.html | |--------------+----------------------+-----------------------|
- Что переводить не нужно
Имена аргументов функций переводить не нужно.
Абзацы о несовместимости Common Lisp'а с другими диалектами переводить не нужно и желательно их удалять из оригинала. Они представлены так: : \begin{incompatibility} : ... : \end{incompatibility}
Я думаю, что сейчас кроме историков больше никому не интересно знать о том, чем Common Lisp отличается от своих предшественников.
Устаревшие абзацы нужно переводить частично. Чаще всего после устаревшего абзаца идет информация о его обновлении, или же идет полностью новый абзац.
Устаревший абзац : \begin{obsolete} : ... : \end{obsolete}
Обновление для устаревшего абзаца : \begin{newer} : ... : \end{newer}
Имена, фамилии переводить не обязательно.
Названия языков переводить не нужно. Можно просто их склонять с помощью апострофа в конце и русского окончания. Например: "Пишу программу на Common Lisp'е".
Пояснения о функционировании реализации переводить необязательно. Эти абазацы выделяются так: : \begin{implementation} : ... : \end{implementation}
Главу 24 Errors переводить не нужно. Она полностью устарела и заменена главой Conditions.
Абзацы с отсылами к предыдущему изданию переводить не нужно. Такие абзацы выделены так: : \begin{new}%CORR : \emph{Notice of correction.} : ... : \end{new}
- Что переводить нужно
Все остальные абзацы.
- Англо-русские эквиваленты для слов и словосочетаний
| Английский | Русский | Комментарий | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | character | строковый символ (иногда просто символ) | Тип данных, представляющий отображение символа строки. Переводится со словом строковый, чтобы не было путаницы с фирменными лисповыми символами. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | integer | целое число, целочисленный | Тип данных, представляющий целое число. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | ratios | дробный | Тип данных, представляющий дробное число. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | rational | рациональные числа | | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | real | действительные числа | | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | floating-point numbers | числа с плавающей точкой | "с запятой" это более по русски, но технически будет сбивать с толку | | single | одинарные | | | short | короткие | | | long | длинные | | | double | двойные | | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | "true list" | "Ъ список" | Список с последним элементом равным nil (не dotted) | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | dotted list | список с точкой | Список с последним элементом не nil. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | keywords | ключевые символы | Символы, которые вычисляются сами в себя. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | keyword arguments (parameters) | именованные аргументы (параметры) | Аргументы, которые могут быть переданы с указанием имени в любой позиции при вызове функции. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | self-evaluated | самовычисляемый | | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | macrocall | макровызов | Форма, вызывающая макрос. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | pathname | имя файла, объект имени файла | Объект, который содержит в себе структуру описывающую имя файла в переносимом формате. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | flow of control, control flow | порядок выполнения | | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | non-local exit | нелокальный выход | Это ситуация, "прерывания" выполнения функции. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | are eq | равны eq | Равенство проверяется с помощью функции eq | | are eql | равны eql | Равенство проверяется с помощью функции eql | | are equal | равны equal | Равенство проверяется с помощью функции equal | | are equalp | равны equalp | Равенство проверяется с помощью функции equalp | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | dispatching | диспетчеризация | | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | evaluator | вычислитель | Программа, которая вычисляет формы. По сути интерпретатор. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | reader | считываеть | Программа, которая считывает формы. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | printer | писатель | Программа, которая выводит объекты Common Lisp'а на некоторое устройство. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | print name | имя символа (или выводимое имя) | Имя символа, которое выводится писателем. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | printed representation | текстовое (строковое) представление | Каждый Common Lisp'овый объект может быть выведен в строку, но не каждый может быть получен из строки обратно | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | interned | пакетный (интернированный) | Символ, у которого есть домашний пакет. Либо символ, который доступен из данного пакета. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | uninterned | беспакетный (дезинтернированный) | Символ, у которого нет домашнего пакета. Либо символ удаляемый из данного пакета. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | intern | пакетировать (задать пакет) | Присваивание домашнего пакета символу. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | unintern | депакетировать (лишить пакета) | Лишить символ домашнего пакета. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | external symbol | внешний символ (экспортированный символ) | Символ, который "официально" доступен для пользователей пакета. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | internal symbol | внутренний символ (неэкспортированный символ) | Символ, который служит только для внутренних нужд. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | shadow | скрывать | Преимущество одного символа над другим, если у них одинаковые имена | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | hash table | хеш-таблица | Структура для хранения объектов ключ=>значение. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | null environment | нулевое окружение | | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | the top-level-loop | цикл взаимодействия с пользователем | | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | synonym stream | поток-синоним | | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | bit sink | кусочек клоаки | | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | end-of-file | конец файла | | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | error signal | сигнал об ошибке | | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | to signal an error | сигнализировать ошибку | Перевод дословный и не совсем корректный, правильнее было бы сигнализировать об ошибке, но нынешний перевод более близок к техническому процессу. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | to signal a correctable error | сигнализировать исправимую ошибку | Это значит, что при возникновении ошибки можно исправить некоторые переменные и перезапустить выполнение, для получения корректного результата | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | package cell | ячейка пакета | Это часть символа, для хранения ссылки на родительский пакет | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | nickname | псевдоним | Пакет имеет основное имя и один или несколько псевдонимов | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | keyword package | пакет ключевых симолов | В данном пакете хряняться ключевые символы | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | are presented in package | быть родственным пакету | Хитрое свойство символа | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | are available in package | быть доступным из пакета | Второе хитрое свойство, пересекающееся с предыдущим | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | generalized variable | обобщенная переменная | А точнее, это форма, в которую можно сохранять лисп объект с помощью setf | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | a correctable error is signaled | сигнализируется исправимая ошибка | Common Lisp'овая система условий и рестартов | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | place | место, форма обощенной переменной | | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | datum | значение | Значение, которое используется в ассоциативном списке (a-list) | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | literal atom | литеральный атом | Грубо говоря константный объект, записанный как есть в исходном коде | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | semi-standard | слегка стандартизирован | Некоторые строковые символы бывают такими | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | expander function | функция типа | Функция, которая определяется с помощью deftype. | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------| | stepping | пошаговое изменение | Изменение переменной в цикле | |---------------------------------+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------|
CLOS, MOP
| Английский | Русский | Комментарий | |-------------------------------+------------------------------+-----------------------------------------------------------------------------------| | class metaobject | классовый метаобъект | Метаобъект определяющий поведение класса | |-------------------------------+------------------------------+-----------------------------------------------------------------------------------| | slot definition metaobject | слотовый метаобъект | Метаобъект содержащий информацию о слоте | |-------------------------------+------------------------------+-----------------------------------------------------------------------------------| | generic function metaobject | функциональный метаобъект | Метаобъект содержащий информацию о обобщённой функции и связанными с ней методами | |-------------------------------+------------------------------+-----------------------------------------------------------------------------------| | method metaobject | методовый метобъект | Метаобъект содержащий информацию о конкретном методе | |-------------------------------+------------------------------+-----------------------------------------------------------------------------------| | specializer metaobject | специализаторский метаобъект | Метаобъект содержащий информацию о специализаторах метода | |-------------------------------+------------------------------+-----------------------------------------------------------------------------------| | method combination metaobject | метаобъект комбинаций | Метаобъект содержащий информацию о кобминациях методов для обобщённой функции |
- LaTeX код
В процессе перевода LaTeX код преобразовывается и упрощается. Это сделано по нескольким причинам. Во-первых книга была сверстана давно в 1990 году и некоторые вещи сегодня просто отказались компилироваться. Во-вторых простой tex код гораздо лучше компилируется tex4ht и результат получается красивее.
Список преобразований:
Некоторые преобразования для более качественного вывода tex4ht:
| Было | Стало | Значение | |------------+--------------+----------------------------------| | {\it ...} | \emph{...} | Выделение (обычно курсивом) | |------------+--------------+----------------------------------| | {\bf ...} | \textbf{...} | Жирный | |------------+--------------+----------------------------------| | {\tt ...} | \texttt{...} | Моноширинный | |------------+--------------+----------------------------------| | (...) | | Скобки для математических формул | |------------+--------------+----------------------------------| | \hbox{...} | ... | | |------------+--------------+----------------------------------|
Простые математические формулы tex4ht может компилировать в текст без генерации картинки. Это очень удобно, так как online книга получается достаточно легковесной.
- commands.tex
Основные команды для книги определены в файле commands_html.tex.
- cltl.cfg
Данный файл содержит конфигурацию для генератора html tex4ht.
- cltl2ed.css
Данный файл содержит стили для книги в html формате.