HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Определение</a></li>
1 <ul><li><a>Определение</a></li>
2 <li><a>Историческая справка</a></li>
2 <li><a>Историческая справка</a></li>
3 <li><a>Ключевые особенности</a></li>
3 <li><a>Ключевые особенности</a></li>
4 <li><a>Области применения</a></li>
4 <li><a>Области применения</a></li>
5 <li><a>Алфавит и атомы языка</a><ul><li><a>Алфавит</a></li>
5 <li><a>Алфавит и атомы языка</a><ul><li><a>Алфавит</a></li>
6 <li><a>Атомы</a></li>
6 <li><a>Атомы</a></li>
7 </ul></li>
7 </ul></li>
8 <li><a>Локальная среда разработки</a><ul><li><a>Текстовый редактор</a></li>
8 <li><a>Локальная среда разработки</a><ul><li><a>Текстовый редактор</a></li>
9 <li><a>Исполнитель</a></li>
9 <li><a>Исполнитель</a></li>
10 </ul></li>
10 </ul></li>
11 <li><a>Преимущества и недостатки</a></li>
11 <li><a>Преимущества и недостатки</a></li>
12 </ul><p>В современном мире очень много языков программирования. Некоторые из них особо популярны и известны почти каждому человеку. А какие-то используются в узких направлениях и известны не так сильно. Грамотный выбор языка программирования - это уже половина успеха намечающегося проекта.</p>
12 </ul><p>В современном мире очень много языков программирования. Некоторые из них особо популярны и известны почти каждому человеку. А какие-то используются в узких направлениях и известны не так сильно. Грамотный выбор языка программирования - это уже половина успеха намечающегося проекта.</p>
13 <p>Далее предстоит познакомиться с Lisp. Этот язык программирования является достаточно узким в плане специализации. Он встречается не так часто, как Python или Java, но все равно пользуется спросом у разработчиков.</p>
13 <p>Далее предстоит познакомиться с Lisp. Этот язык программирования является достаточно узким в плане специализации. Он встречается не так часто, как Python или Java, но все равно пользуется спросом у разработчиков.</p>
14 <p>Необходимо не только познакомиться с языком программирования Lisp, но и изучить области его применения, преимущества и недостатки. Также нужно рассмотреть его подготовку к написанию исходных кодов. Предложенная информация рассчитана на широкую публику. Она поможет понять, когда именно необходимо изучать Lisp.</p>
14 <p>Необходимо не только познакомиться с языком программирования Lisp, но и изучить области его применения, преимущества и недостатки. Также нужно рассмотреть его подготовку к написанию исходных кодов. Предложенная информация рассчитана на широкую публику. Она поможет понять, когда именно необходимо изучать Lisp.</p>
15 <h2>Определение</h2>
15 <h2>Определение</h2>
16 <p>Lisp (List Processing language или Лисп) - это язык обработки списков. Инструмент, широко используемый в обработке данных. Он является старым, но используемым современными разработчиками для узкоспециализированных задач.</p>
16 <p>Lisp (List Processing language или Лисп) - это язык обработки списков. Инструмент, широко используемый в обработке данных. Он является старым, но используемым современными разработчиками для узкоспециализированных задач.</p>
17 <p>Lisp является высокоуровневым языком. Он относится к функциональной парадигме разработки. Раньше он использовался в качестве родного языка для искусственного интеллекта. Сейчас Lisp таковым не является, зато широко используется в других областях.</p>
17 <p>Lisp является высокоуровневым языком. Он относится к функциональной парадигме разработки. Раньше он использовался в качестве родного языка для искусственного интеллекта. Сейчас Lisp таковым не является, зато широко используется в других областях.</p>
18 <h2>Историческая справка</h2>
18 <h2>Историческая справка</h2>
19 <p>Lisp - это один из самых старых инструментов разработки. Он является самым первым функциональным, получившим огромную популярность. Ядро языка Лисп было создано в 60-е годы прошлого века. Разработчиком выступил ученый Джон Маккарти.</p>
19 <p>Lisp - это один из самых старых инструментов разработки. Он является самым первым функциональным, получившим огромную популярность. Ядро языка Лисп было создано в 60-е годы прошлого века. Разработчиком выступил ученый Джон Маккарти.</p>
20 <p>Вместе с Марвином Мински он трудился над работами по искусственному интеллекту. Это привело к необходимости создания языка, который адекватно относился бы к задачам, решаемым в соответствующей области.</p>
20 <p>Вместе с Марвином Мински он трудился над работами по искусственному интеллекту. Это привело к необходимости создания языка, который адекватно относился бы к задачам, решаемым в соответствующей области.</p>
21 <p>Лисп разрабатывался в период с 1958 по 1963 годы. Основой для него выступил ранний язык IPL, разработанный Ньюэллом, Саймоном и Шоу. Он использовался для обработки списков и предназначался специально для проекта "Логик-теоретик" - системы искусственного интеллекта для автоматического вывода теорем математической логики.</p>
21 <p>Лисп разрабатывался в период с 1958 по 1963 годы. Основой для него выступил ранний язык IPL, разработанный Ньюэллом, Саймоном и Шоу. Он использовался для обработки списков и предназначался специально для проекта "Логик-теоретик" - системы искусственного интеллекта для автоматического вывода теорем математической логики.</p>
22 <h2>Ключевые особенности</h2>
22 <h2>Ключевые особенности</h2>
23 <p>Лисп - язык, который отличается от большинства современных инструментов разработки. К его ключевым особенностям можно отнести:</p>
23 <p>Лисп - язык, который отличается от большинства современных инструментов разработки. К его ключевым особенностям можно отнести:</p>
24 <ol><li>Формы представления программ и обрабатываемых данных. Они тождественны и представляют собой списочные структуры. Подобная концепция наделяет язык множеством интересных функций. Примером может служить взаимодействие одной программы с другими.</li>
24 <ol><li>Формы представления программ и обрабатываемых данных. Они тождественны и представляют собой списочные структуры. Подобная концепция наделяет язык множеством интересных функций. Примером может служить взаимодействие одной программы с другими.</li>
25 <li>Реализацию списков. С ее помощью удается миновать управление памятью. Сохранение и очищение ячеек в Lisp осуществляется динамически. Это привело к тому, что сборщик мусора появился в первых версиях языка.</li>
25 <li>Реализацию списков. С ее помощью удается миновать управление памятью. Сохранение и очищение ячеек в Lisp осуществляется динамически. Это привело к тому, что сборщик мусора появился в первых версиях языка.</li>
26 <li>Отсутствие строгой типизации.</li>
26 <li>Отсутствие строгой типизации.</li>
27 <li>Префиксные нотации. Они предоставляют больше возможностей для синтаксического разбора выражений.</li>
27 <li>Префиксные нотации. Они предоставляют больше возможностей для синтаксического разбора выражений.</li>
28 <li>Использование множества скобок. Круглые скобки используются для обозначения списка, в котором может быть все что угодно: разнообразные команды, слова, символы, списки в списках, функции и так далее.</li>
28 <li>Использование множества скобок. Круглые скобки используются для обозначения списка, в котором может быть все что угодно: разнообразные команды, слова, символы, списки в списках, функции и так далее.</li>
29 <li>Возможность объявления функций где угодно. Из-за данной особенности исходный код программного обеспечения может стать менее читаемым.</li>
29 <li>Возможность объявления функций где угодно. Из-за данной особенности исходный код программного обеспечения может стать менее читаемым.</li>
30 <li>Возможность создания собственных правил. Lisp преследует одну ключевую цель - это обработка заданных списков по правилам программиста. В этом заключается суть функционального программирования: разработчик задает правила обработки, а язык самостоятельно разбирается в том, где и как их применить, куда передавать результат, что с ним делать далее.</li>
30 <li>Возможность создания собственных правил. Lisp преследует одну ключевую цель - это обработка заданных списков по правилам программиста. В этом заключается суть функционального программирования: разработчик задает правила обработки, а язык самостоятельно разбирается в том, где и как их применить, куда передавать результат, что с ним делать далее.</li>
31 </ol><p>Существуют Lisp-машины - вычислительные устройства, которые адаптированы для эффективного выполнения приложений, написанных на языке Лисп. Такие машины не пользуются существенным спросом. Их численность во всем мире составляет около 10 000 экземпляров.</p>
31 </ol><p>Существуют Lisp-машины - вычислительные устройства, которые адаптированы для эффективного выполнения приложений, написанных на языке Лисп. Такие машины не пользуются существенным спросом. Их численность во всем мире составляет около 10 000 экземпляров.</p>
32 <h2>Области применения</h2>
32 <h2>Области применения</h2>
33 <p>Области применения языка программирования Lisp разнообразны, несмотря на узкую специализацию рассматриваемого инструмента разработки:</p>
33 <p>Области применения языка программирования Lisp разнообразны, несмотря на узкую специализацию рассматриваемого инструмента разработки:</p>
34 <ul><li>наука;</li>
34 <ul><li>наука;</li>
35 <li>промышленность;</li>
35 <li>промышленность;</li>
36 <li>образование;</li>
36 <li>образование;</li>
37 <li>медицина;</li>
37 <li>медицина;</li>
38 <li>информационные технологии.</li>
38 <li>информационные технологии.</li>
39 </ul><p>Lisp подойдет для самых разных целей - от декодирования генома человека до использования в системах проектирования самолетов.</p>
39 </ul><p>Lisp подойдет для самых разных целей - от декодирования генома человека до использования в системах проектирования самолетов.</p>
40 <p>Первые области применения Lisp были связаны с символьной обработкой информации, а также с процессами принятия разнообразных решений. Сейчас наиболее популярный диалект Common Lisp выступает универсальным средством разработки.</p>
40 <p>Первые области применения Lisp были связаны с символьной обработкой информации, а также с процессами принятия разнообразных решений. Сейчас наиболее популярный диалект Common Lisp выступает универсальным средством разработки.</p>
41 <p>Используется этот инструмент программирования в самых разных проектах:</p>
41 <p>Используется этот инструмент программирования в самых разных проектах:</p>
42 <ul><li>Интернет-серверы;</li>
42 <ul><li>Интернет-серверы;</li>
43 <li>Интернет-службы;</li>
43 <li>Интернет-службы;</li>
44 <li>серверы приложений;</li>
44 <li>серверы приложений;</li>
45 <li>клиентские части программного обеспечения;</li>
45 <li>клиентские части программного обеспечения;</li>
46 <li>научные расчеты;</li>
46 <li>научные расчеты;</li>
47 <li>игры;</li>
47 <li>игры;</li>
48 <li>сервисы, работающие с реляционными и объектными базами данных.</li>
48 <li>сервисы, работающие с реляционными и объектными базами данных.</li>
49 </ul><p>Lisp обладает множеством диалектов, некоторые из которых предназначаются для строго определенных целей. Примером может случить Game Oriented Assembly Lisp. Этот диалект используется для написания высокодинамичных трехмерный игр.</p>
49 </ul><p>Lisp обладает множеством диалектов, некоторые из которых предназначаются для строго определенных целей. Примером может случить Game Oriented Assembly Lisp. Этот диалект используется для написания высокодинамичных трехмерный игр.</p>
50 <p>Lisp также может быть использован в качестве скриптового языка для автоматизации работы некоторых прикладных программ.</p>
50 <p>Lisp также может быть использован в качестве скриптового языка для автоматизации работы некоторых прикладных программ.</p>
51 <h2>Алфавит и атомы языка</h2>
51 <h2>Алфавит и атомы языка</h2>
52 <p>Языки разработки создаются для создания приложений и виртуальных проектов, обрабатываемых компьютерами или иным оборудованием. За счет этого то или иное устройство получает возможность распознавать текст, воспроизводить графику и звук, осуществлять разнообразные расчеты и многое другое. Сам процессор оборудования не способен на реализацию сложных команд. Их необходимо преобразовывать в машинный код, понятный компьютеру.</p>
52 <p>Языки разработки создаются для создания приложений и виртуальных проектов, обрабатываемых компьютерами или иным оборудованием. За счет этого то или иное устройство получает возможность распознавать текст, воспроизводить графику и звук, осуществлять разнообразные расчеты и многое другое. Сам процессор оборудования не способен на реализацию сложных команд. Их необходимо преобразовывать в машинный код, понятный компьютеру.</p>
53 <p>Существует и другой метод, позволяющий сделать приложение понятным для устройства. С его помощью получится наладить "понимание" исходного кода процессором при помощи программы-исполнителя (интерпретатора). Именно такая концепция используется в Lisp.</p>
53 <p>Существует и другой метод, позволяющий сделать приложение понятным для устройства. С его помощью получится наладить "понимание" исходного кода процессором при помощи программы-исполнителя (интерпретатора). Именно такая концепция используется в Lisp.</p>
54 <p>Рассматриваемый инструмент разработки формирует исходные коды из атомов и алфавита. Далее эти элементы будут изучены более подробно.</p>
54 <p>Рассматриваемый инструмент разработки формирует исходные коды из атомов и алфавита. Далее эти элементы будут изучены более подробно.</p>
55 <h3>Алфавит</h3>
55 <h3>Алфавит</h3>
56 <p>Алфавит Lisp включает в себя заглавные и строчные латинские буквы, цифры и все клавиатурные знаки. В нем нет литеров национальных языков, но данная особенность не может рассматриваться в качестве строгого правила. Примером служит HomeLisp - алфавит, который включает в себя русские строчные и заглавные буквы.</p>
56 <p>Алфавит Lisp включает в себя заглавные и строчные латинские буквы, цифры и все клавиатурные знаки. В нем нет литеров национальных языков, но данная особенность не может рассматриваться в качестве строгого правила. Примером служит HomeLisp - алфавит, который включает в себя русские строчные и заглавные буквы.</p>
57 <p>Lisp-алфавит включает в себя шесть символов, применяемых нестандартными способами: пробел, точка, круглые скобки, двойные кавычки и апостроф. Остальные символы используются обычными методами. Это может доставить некоторые хлопоты на первых этапах изучения языка программирования Lisp.</p>
57 <p>Lisp-алфавит включает в себя шесть символов, применяемых нестандартными способами: пробел, точка, круглые скобки, двойные кавычки и апостроф. Остальные символы используются обычными методами. Это может доставить некоторые хлопоты на первых этапах изучения языка программирования Lisp.</p>
58 <h3>Атомы</h3>
58 <h3>Атомы</h3>
59 <p>Синтаксис рассматриваемого инструмента программирования образуется из его алфавитных символов. Самая простая конструкция здесь - это атом. В языке программирования Лисп так называется произвольная строка алфавитных символов, за исключением некоторых отдельно стоящих элементов:</p>
59 <p>Синтаксис рассматриваемого инструмента программирования образуется из его алфавитных символов. Самая простая конструкция здесь - это атом. В языке программирования Лисп так называется произвольная строка алфавитных символов, за исключением некоторых отдельно стоящих элементов:</p>
60 <ul><li>точек;</li>
60 <ul><li>точек;</li>
61 <li>пробелов и их групп;</li>
61 <li>пробелов и их групп;</li>
62 <li>апострофа;</li>
62 <li>апострофа;</li>
63 <li>знаков двойных кавычек;</li>
63 <li>знаков двойных кавычек;</li>
64 <li>левых или правых скобок, или групп соответствующих символов (кроме открывающей и закрывающей скобки, написанных подряд).</li>
64 <li>левых или правых скобок, или групп соответствующих символов (кроме открывающей и закрывающей скобки, написанных подряд).</li>
65 </ul><p>Строки, представляющие собой атомы, не могут включать в себя пробелы и круглые скобки, но поддерживают возможность постановки точки.</p>
65 </ul><p>Строки, представляющие собой атомы, не могут включать в себя пробелы и круглые скобки, но поддерживают возможность постановки точки.</p>
66 <p>Среди атомов языка программирования Лисп можно выделить несколько ключевых групп:</p>
66 <p>Среди атомов языка программирования Лисп можно выделить несколько ключевых групп:</p>
67 <ol><li>Десятичные числа. Это - корректное изображение единиц счета. В случае с целыми числами с дробными частями в качестве разделителя используется точка.</li>
67 <ol><li>Десятичные числа. Это - корректное изображение единиц счета. В случае с целыми числами с дробными частями в качестве разделителя используется точка.</li>
68 <li>Битовые константы (шестнадцатеричные).</li>
68 <li>Битовые константы (шестнадцатеричные).</li>
69 <li>Строки. Соответствующие атомы отличаются тем, что первые и последние их символы - это двойные кавычки. Между ними могут быть любые элементы алфавита, включая скобки и пробелы.</li>
69 <li>Строки. Соответствующие атомы отличаются тем, что первые и последние их символы - это двойные кавычки. Между ними могут быть любые элементы алфавита, включая скобки и пробелы.</li>
70 <li>Атомы T и Nil. Они используются для самых разных операций.</li>
70 <li>Атомы T и Nil. Они используются для самых разных операций.</li>
71 </ol><p>Все это поможет лучше понять Lisp. Для начала работы с этим инструментом разработки требуется правильно настроить локальную среду программирования.</p>
71 </ol><p>Все это поможет лучше понять Lisp. Для начала работы с этим инструментом разработки требуется правильно настроить локальную среду программирования.</p>
72 <h2>Локальная среда разработки</h2>
72 <h2>Локальная среда разработки</h2>
73 <p>Язык программирования Lisp предусматривает достаточно простую настройку среды программирования. Чтобы успешно писать на нем программы, требуется задействовать два типа программного обеспечения: текстовый редактор и исполнитель Лисп.</p>
73 <p>Язык программирования Lisp предусматривает достаточно простую настройку среды программирования. Чтобы успешно писать на нем программы, требуется задействовать два типа программного обеспечения: текстовый редактор и исполнитель Лисп.</p>
74 <h3>Текстовый редактор</h3>
74 <h3>Текстовый редактор</h3>
75 <p>Данный тип программного обеспечения пригодится для непосредственного ввода кода программы. Редактором может выступать:</p>
75 <p>Данный тип программного обеспечения пригодится для непосредственного ввода кода программы. Редактором может выступать:</p>
76 <ul><li>"Блокнот" от Windows;</li>
76 <ul><li>"Блокнот" от Windows;</li>
77 <li>EMACS;</li>
77 <li>EMACS;</li>
78 <li>vim;</li>
78 <li>vim;</li>
79 <li>vi;</li>
79 <li>vi;</li>
80 <li>Epsilon.</li>
80 <li>Epsilon.</li>
81 </ul><p>Версии и названия редакторов могут быть разными - они меняются в зависимости от операционной системы, установленной на компьютере.</p>
81 </ul><p>Версии и названия редакторов могут быть разными - они меняются в зависимости от операционной системы, установленной на компьютере.</p>
82 <p>Файлы, создаваемые в текстовых редакторах, являются исходными документами проекта. Они включают в себя коды программных продуктов. Файлы для приложений на языке Лисп обычно имеют расширение .lisp.</p>
82 <p>Файлы, создаваемые в текстовых редакторах, являются исходными документами проекта. Они включают в себя коды программных продуктов. Файлы для приложений на языке Лисп обычно имеют расширение .lisp.</p>
83 <h3>Исполнитель</h3>
83 <h3>Исполнитель</h3>
84 <p>Исходный код, содержащийся в документе с подходящим расширением, может быть считан приложением. Для этого файл должен быть выполнен - он трансформируется в машинный язык, удобный для восприятия процессором устройства.</p>
84 <p>Исходный код, содержащийся в документе с подходящим расширением, может быть считан приложением. Для этого файл должен быть выполнен - он трансформируется в машинный язык, удобный для восприятия процессором устройства.</p>
85 <p>Для работы с Lisp можно использовать компилятор GNU Common Lisp. Он широко применяется для настройки рассматриваемого инструмента разработки в Windows.</p>
85 <p>Для работы с Lisp можно использовать компилятор GNU Common Lisp. Он широко применяется для настройки рассматриваемого инструмента разработки в Windows.</p>
86 <h2>Преимущества и недостатки</h2>
86 <h2>Преимущества и недостатки</h2>
87 <p>Язык программирования Лисп, как и любой другой, имеет свои преимущества и недостатки. Его основная сила заключается в умении работать с текстом: разбирать его на разнообразные составляющие, искать связи, делать выводы и так далее. В качестве текста могут выступать разные элементы:</p>
87 <p>Язык программирования Лисп, как и любой другой, имеет свои преимущества и недостатки. Его основная сила заключается в умении работать с текстом: разбирать его на разнообразные составляющие, искать связи, делать выводы и так далее. В качестве текста могут выступать разные элементы:</p>
88 <ul><li>обычный текст;</li>
88 <ul><li>обычный текст;</li>
89 <li>написанные коды приложений;</li>
89 <li>написанные коды приложений;</li>
90 <li>внутренние команды разнообразных программ;</li>
90 <li>внутренние команды разнообразных программ;</li>
91 <li>управляющие последовательности байтов на серверах;</li>
91 <li>управляющие последовательности байтов на серверах;</li>
92 <li>базы данных;</li>
92 <li>базы данных;</li>
93 <li>команды для станков;</li>
93 <li>команды для станков;</li>
94 <li>статьи и базы знаний.</li>
94 <li>статьи и базы знаний.</li>
95 </ul><p>Современными программистами чаще всего используется Common Lisp - диалект, в котором добавлены новые команды, структуры данных и возможности для императивной разработки программного обеспечения.</p>
95 </ul><p>Современными программистами чаще всего используется Common Lisp - диалект, в котором добавлены новые команды, структуры данных и возможности для императивной разработки программного обеспечения.</p>
96 <p>Рассматриваемый инструмент программирования является относительно понятным, но новичку в нем бывает трудно разобраться. Это - основной недостаток Лисп.</p>
96 <p>Рассматриваемый инструмент программирования является относительно понятным, но новичку в нем бывает трудно разобраться. Это - основной недостаток Лисп.</p>
97 <p>Также данный инструмент программирования часто используется злоумышленниками для написания хакерских приложений. Он не слишком популярен и имеет достаточно узкую специализацию.</p>
97 <p>Также данный инструмент программирования часто используется злоумышленниками для написания хакерских приложений. Он не слишком популярен и имеет достаточно узкую специализацию.</p>
98 <p>Теперь понятно, что собой представляет язык Лисп. И для чего он используется - тоже. Разработка с помощью этого инструмента не подойдет новичкам в программировании: процесс может показаться сложным и запутанным. Тем, кто уже имел дело с разработкой программного обеспечения, Лисп покажется не таким трудным.</p>
98 <p>Теперь понятно, что собой представляет язык Лисп. И для чего он используется - тоже. Разработка с помощью этого инструмента не подойдет новичкам в программировании: процесс может показаться сложным и запутанным. Тем, кто уже имел дело с разработкой программного обеспечения, Лисп покажется не таким трудным.</p>
99 <p>Это - инструмент, который не слишком сильно выделяется среди стандартных средств программирования (C++, PHP, Java и так далее). Несмотря на это, Лисп можно изучать для некоторых проектов. Сложности, возникающие при работе с ним, по мере обучения будут устраняться.</p>
99 <p>Это - инструмент, который не слишком сильно выделяется среди стандартных средств программирования (C++, PHP, Java и так далее). Несмотря на это, Лисп можно изучать для некоторых проектов. Сложности, возникающие при работе с ним, по мере обучения будут устраняться.</p>
100 <p>Быстрее освоить Лисп или любой другой инструмент программирования помогут компьютерные дистанционные курсы. Они рассчитаны на срок от нескольких месяцев до года. В конце каждого курса ученик получит цифровой сертификат, подтверждающий приобретенные навыки и знания.</p>
100 <p>Быстрее освоить Лисп или любой другой инструмент программирования помогут компьютерные дистанционные курсы. Они рассчитаны на срок от нескольких месяцев до года. В конце каждого курса ученик получит цифровой сертификат, подтверждающий приобретенные навыки и знания.</p>
101 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
101 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
102  
102