Сергей Толкачев - Активные данные. Философское программирование
- Название:Активные данные. Философское программирование
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:9785005680914
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Сергей Толкачев - Активные данные. Философское программирование краткое содержание
Активные данные. Философское программирование - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
В этой книге речь пойдет о программировании активных данных. «Чего только не программируют в наше время» – заметит тут ворчливый программист и будет абсолютно прав. Запрограммировать можно практически всё , и перефразируя известное высказывание Архимеда, настоящий программист может сказать: «Дайте мне объект, и я его имплементирую.» Правда, в отличие от Архимеда, которому не нужно было объяснять, что такое « точка опоры», программист должен быть готов определить грамматику, семантику и прагматику этой фразы, специфицировать протокол « дайте» , перечислить свойства « мне» и « объект» , уточнить чем является « и» – конкатенацией или логической функцией, и т. д. Ведь он живет в мире, где все его слова, все его тексты, проверяет неумолимый компилятор, который только и делает, что снова и снова ищет ошибки. Стоило упомянуть слово «компилятор», как старый программист (старый – это тот, кто читал книги Д. Кнута и К. Джермейн, и знает разницу между MIX и PSW) немедленно возразил: «Делать компилятору больше нечего – он занимается исключительно преобразованием одних строк в другие, и, если не получается, кричит, что не могу, спасайте. Ну да, делают это не все компиляторы. Например, JavaScript весьма толерантен и игнорирует любые ошибки. (Ю.Ш.)». Таков удел всех книг для программистов. С одной стороны, программирование – это формальная дисциплина, а с другой – сколько программистов, столько и формализаций.
Приступая к работе над этой книгой, автор, который всю свою жизнь пишет программы, не может просто так взять и выключить профессиональный способ формулирования мыслей, ведь для него книга – это та же программа, только написанная на другом языке. Но в отличие от программы, книгу мало написать корректно и оптимально, её важно написать к тому же и интересно! Наряду с этим, образованный программист, имеющий некоторое представление о «принципе минимальной длины описания» или «Колмогоровской сложности», понимает, что гипотетически, существует способ передать то, что он хочет сказать, в кратчайшей форме. Но читательское восприятие – процесс сугубо индивидуальный, контекстно-зависимый и к тому же мультимодальный. Поэты и математики лучше других знают, как при помощи слов выразить человеческие чувства и рациональную логику, и для этого они используют одномерные языки. Музыканты и художники могут передавать гармонию и видение мира, в пространствах с бо́льшим количеством измерений. В идеале, сочетание слов, ритмов, логики и рисунков создаёт в голове у человека самые глубокие и прочные ассоциации, основанные на фундаментальных формах сознания. А если помимо форм, прислушаться как в диалогах Пушкина о роли автора, Реньи о математике или в философских спорах Валентинова с Лениным о материальном и идеальном, возникает процесс обмена сомнениями, в котором каждый может поучаствовать со своими идеями и возражениями, то конечно нам нужно добавить в книгу виртуальный диалог с читателем и взгляд со стороны, например, в форме замечаний собеседника-оппонента…
Дойдя до этого параграфа, читатель-непрограммист может представить, что творится в голове у автора-программиста, а читатель-программист вправе ожидать хоть какое-нибудь формальное определение. И вот, чтобы помочь как можно быстрее разобраться и понять, насколько интересно и полезно будет продолжить чтение этой книги, попробуем не совсем формально и по возможности кратко, сформулировать её цель:
Активные данные – это виртуальные программируемые элементы, обладающие динамическими свойствами, аналогом которых являются биологические нейроны и нервы. В математике данные связаны с абстрактным понятием «переменная», а в программировании, данные – это значение или состояние какого-либо регистра или области памяти в конкретный момент времени. И в математике, и в программировании, операции над данными выполняет внешний процесс, который, собственно, и изменяет их значение, но в биологических системах, клетки обладают достаточной автономией и могут изменять свое состояние самостоятельно. В этой книге мы покажем, как модели биологических клеток можно применить для построения активных структур данных, при решении задач искусственного интеллекта, связанных с обменом знаниями, пониманием смысла, контекстно-зависимым поиском, диалогом и, в частности, при создании персональных помощников, виртуальных агентов и функциональных чат-ботов. Поскольку многое из того о чем здесь пойдет речь, еще только предстоит сделать, книгу можно рассматривать как бизнес-идею для программистов и пользователей, а также для предпринимателей.
Теперь дотошный читатель может проверить близость определения термина переменная с соответствующей статьей в Википедии, математик—алгебраист ( А.В.К.) добавит, что «Согласно Н. Бурбаки, переменная в формальной математике – это вообще неопределенный термин», а старый программист снова возразит: «В математике нет процессов. Непонятно, о какой конкретно математике идет речь. И хотелось бы иметь определение „знания“ и „понимания“ (Ю.Ш.)» . И поскольку « все они тоже правы », перед автором возникает образ Сциллы и Харибды, между которыми нужно проложить маршрут повествования так, чтобы и увлечь любопытного читателя, и в то же время сделать книгу полезной для практического программиста.
Обмен знаниями – это такой же естественный процесс для человека, как и умение говорить прозой. Безусловно, что далеко не всякий разговор приводит к приобретению знаний, а протоколы и формы, в которых мы передаем и получаем знания, могут быть самыми разнообразными. Но в каждом случае, если речь идет об обмене знаниями, мы наблюдаем три составляющие этого процесса: источник , сообщение и получатель . Источник – автор, учитель, композитор и т. п., преобразует свои знания в сообщение , которое может быть записано в виде книги, нотной партитуры, математической теории, и передано в форме диалога, лекции или беседы. А получатель – это тот, кто в результате приобретает новую информацию или навыки, позволяющие что-то сделать. Можно продолжить ряд вариантов этой тройки:
композитор → партитура → музыкант
учитель → урок → ученик
автор → книга → читатель
С появлением компьютера оказалось, что он также, наряду с человеком, может участвовать в процессе обмена знаниями, как в качестве источника, так и получателя. Вряд ли кого-нибудь сегодня удивит, что программист передает знания компьютеру в форме программы ( программист → программа → компьютер ) или компьютер, выступающий в роли учителя ( компьютер → урок → ученик ). А с помощью средств виртуализации, сам компьютер можно превратить в сообщение и тогда возможна схема передачи знаний в форме: автор → компьютер → пользователь .
Читать дальшеИнтервал:
Закладка: