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