WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     || 2 |
Комбинаторная логика в Введение программировании Зачем нужно...

Основное –...

Вольфенгаген В.Э.

Аппликативные...

Кафедра ПКИ и ИТ, Институт “ЮрИнфоР-МГУ”, Компьютинг и...

Москва, 127006 РФ, Заключение vew@jmsuice.msk.ru, Благодарности WWW:http://www.wolfengagen.mephi.ru Список литературы Аннотация На ранних стадиях программирование представляло собой вид искусства, Home Page когда программист писал программу для решения определенной задачи и сопровождал ее более или менее подробно составленной документацией, то теперь создана мощная Title Page индустрия программирования с сопутствующей ей инженерией программирования. В настоящее время в исследованиях по программированию или в сфере компьютерных наук, как правило, поддерживаются работы, в которых вносится некоторое небольшое улучшение в решение уже хорошо известной проблемы. Вместе с тем из виду упус каются действительно важные и фундаментальные исследования, ведущие к поиску новых концепций вычислений на компьютере и недостаточное внимание уделяется наPage 1 of 19 коплению знаний в области программирования.

В настоящей работе основное внимание уделено вычислениям с объектами, удельный вес и роль которых в данной области все более возрастает, превращаясь в доминируGo Back ющую тенденцию.

Full Screen Close Настоящая работа отражает результаты исследований, частично поддержанных грантом Российского Фонда Фундаментальных Исследований, 04-07-90156 Quit 1. Введение С момента своего возникновения комбинаторная логика и ламбда-исчислеВведение ние были отнесены к “неклассическим” логиками. Дело заключается в том, Зачем нужно...

что комбинаторная логика возникла в 1920-х гг., а ламбда-исчисление (Основное –...

исчисление) – в 1940-х гг. как ветвь метаматематики с достаточно очерченАппликативные...

ным предназначением – дать основания математике (см. [8]). Это означаКомпьютинг и...

ет, что сконструировав требуемую ‘прикладную’ математическую теорию – Заключение предметную теорию, – которая отражает процессы или явления в реальной Благодарности внешней среде, можно воспользоваться ‘чистой’ метатеорией как оболочкой Список литературы для выяснения возможностей и свойств предметной теории.

Комбинаторная логика и ламбда-исчисление – это такие формальные Home Page системы, в которых центральной разрабатываемой сущностью является представление об объекте. В первой из них – комбинаторной логике, – механизм Title Page связывания переменных в явном виде отсутствует, а во второй он имеется.

Наличие явного механизма связывания предполагает и наличие связанных переменных, но тогда есть и свободные переменные, а также механизмы за мещения формальных параметров – связанных переменных, – на фактические параметры, то есть подстановка.

Page 2 of Изначальным назначением комбинаторной логики был именно анализ Go Back процесса подстановки. В качестве ее сущностей планировалось использовать объекты в виде комбинаций констант. Ламбда-исчислению отвоFull Screen дилась роль средства уточнения представлений об алгоритме и вычислимости. Как следствие, комбинаторная логика дает в руки инструмент для Close анализа процесса подстановки. Через короткий промежуток времени окаQuit залось, что обе эти системы можно рассматривать как языки программирования (см. [1], [9], а также книгу [4] и библиографию к ней).

В обеих системах исчисляются объекты, они являются исчислениями Введение или языками высших порядков, то есть имеются средства описания отобЗачем нужно...

ражений или операторов, которые определяются на отображениях или опеОсновное –...

раторах, а в качестве результата вырабатывают также отображения или опеАппликативные...

раторы. Самое существенное, что именно отображение считается объКомпьютинг и...

ектом. В этом их принципиальное отличие от всего многообразия других Заключение систем, в которых первичной сущностью обычно считают представление о Благодарности множестве и его элементах.

Список литературы К настоящему времени оба эти языка не только стали основой для всей массы исследований в области computer science, но и широко используютHome Page ся в теории программирования. Развитие вычислительной мощности компьютеров привело к автоматизации значительной части теоретического – Title Page логического и математического, – знания, а комбинаторная логика вместе с ламбда-исчислением признаются основой для рассуждений в терминах объектов (см. [6], [7]).

Без овладения их методами нельзя полноценно развить базовую технику вычислений с объектами, поскольку все еще распространенный в объектPage 3 of ных языках программирования и проектирования теоретико-множественный Go Back стиль заставляет вязнуть в обилии второстепенных деталей, упуская из виду действительно существенные моменты взаимодействия объектов.

Full Screen Close Quit 2. Зачем нужно исчислять объекты Работа за компьютерами с оболочкой, способной взять на себя заботы об Введение управлении объектами программного обеспечения, закладывает основу саЗачем нужно...

мой современной на сегодня методики программирования. В настоящее вреОсновное –...

мя с объектами работают сотни прикладных программ таких, как Windows, Аппликативные...

AutoCAD, Designer и многих других. С другой стороны инструментальные Компьютинг и...

системы программирования Small Talk, Actor,..., C++, C, Java и ряд друЗаключение гих требуют от программиста систематических рассуждений в терминах объБлагодарности ектов и связей между ними, которые в свою очередь могут рассматриваться Список литературы как объекты. Программирование в терминах объектов требует создания и поддержания собственной математической культуры, дающей весь спектр Home Page стимулирующих идей (см. [10], а также раздел Круг вопросов в [8], с.939). Программист при решении вполне конкретной задачи становится исTitle Page следователем, от которого требуется создание собственного языка со своими возможностями. Эти возможности не всегда интуитивно очевидны, и могут потребоваться чисто математические оценки их выразительных воз можностей. Кроме того, часто требуется не просто написать некоторый программный код, но и выполнить его оптимизацию, не теряя свойства эквиваPage 4 of лентности исходному коду. Все это требует для аккуратного и профессиоGo Back нального проведения работы своей собственной “математической оболочки”, в которой поддерживаются все значимые и интересные математические Full Screen приложения.



Close Quit 3. Основное – адекватный способ мышления Хорошо известно, что в практике программирования сложились различные Введение подходы, которые развиваются по различным направлениям. БросающиеЗачем нужно...

ся в глаза различия проявляются в разном способе осмысления и напиОсновное –...

сания программ. Большинство программистов занимается процедурным Аппликативные...

программированием. Но кроме него есть и программирование, основанное Компьютинг и...

на правилах, логическое программирование, параллельное программиЗаключение рование, визуальное программирование, программирование в терминах Благодарности потоков данных. При желании этот перечень можно продолжить, но он, очеСписок литературы видно, будет неполон, если в него не включить также и объектно-ориентированное программирование, которое имеет явно выраженную тенденHome Page цию роста.

Title Page 3.1. Подходы и стили программирования Подходов и стилей программирования много, и это отражает картину со вершенствования и распространения все новых и новых компьютерных архитектур. Возникающие архитектуры ориентированы на новые подходы к Page 5 of программированию, которые еще только зарождаются в исследовательских Go Back лабораториях.

Обилие и разнообразие подходов к программированию в computer sciFull Screen ence отражается в развитии и распространении различных подходов к построению математики. Действительно, математических теорий построено удиClose вительно много, и каждая из них является совершенно своеобразным языQuit ком общения сравнительно ограниченного круга специалистов, которые хорошо понимают друг друга. Однако попытка “непосвященного” понять практическую пользу и значимость нового математического языка наталкиваВведение ется на препятствия. Прежде всего оказывается необходимым перестроЗачем нужно...

ить собственный стиль мышления, чтобы на известные трудности взглянуть Основное –...

под новым углом зрения. Так распространение объектно-ориентированного Аппликативные...

программирования требует и привлечения других способов рассуждения, Компьютинг и...

которые зачастую радикально отличаются от стереотипов рассуждения в Заключение процедурном программировании.

Благодарности Список литературы 3.2. Рассуждения в терминах объектов Home Page Точно также лишь немногие и сравнительно молодые математические теории ориентированы на рассуждения в терминах объектов, а не в терминах Title Page операторов, как это следует из опыта изучения математического анализа в большинстве университетов, в том числе, и технического или компью терного профиля. К сожалению, программисту не удается прослушать уни верситетский курс, закладывающий основы математического мышления в терминах объектов. В лучшем случае дело ограничивается сообщением чиPage 6 of сто математических результатов, полученных в комбинаторной логике, Go Back -исчислении или теории категорий, которые не так-то просто преломить на практическое программирование без известной теоретической исFull Screen кушенности.

Можно утверждать, что комбинаторная логика значительно повлияла на Close современную картину программирования. Начинаясь как наука о природе Quit подстановок в математических теориях, она породила функциональное программирование, программирование в терминах суперкомбинаторов, а также некоторые другие чрезвычайно плодотворные подходы к программиВведение рованию. В частности, только по-настоящему проникнув в сам дух комбиЗачем нужно...

наторной логики, можно понять в деталях и практически применить систему Основное –...

программирования с заранее нефиксированной системой инструкций.

Аппликативные...

Компьютинг и...

Заключение 3.3. Теория вычислений Благодарности Список литературы Парадигмы программирования 90-х гг. в сильной степени выросли из математического способа рассуждений, принятого в теории вычислений. В Home Page частности, одной из ее начальных посылок была концепция ‘протекания информации’ вдоль некоторого ‘возможного’ русла, что привело к возникноTitle Page вению весьма плодотворной концепции программы, управляемой потоком данных. Другой пример связан с идеей использования некоторой части ком бинаторной логики, построив в ней специальные объекты-инструкции. Эти объекты образуют систему команд категориальной абстрактной машины, которая может быть с успехом положена в основу вполне практиPage 7 of ческих (но объектно-ориентированных) систем программирования (см. [3]).





Go Back Более того, правила комбинаторной логики позволяют оптимизировать компилируемый программный код, редуцируя его к некоторой нормальFull Screen ной форме. Для специалистов в комбинаторной логике это почти само собой разумеется с самого начала, поскольку в этом состояла одна из целей разClose работки комбинаторной логики как математической дисциплины.

Quit Современные исследования в области computer science показывают, что комбинаторная логика и ее различные категориальные диалекты становятся необходимым математическим языком программиста, пользуясь котоВведение рым он обменивается идеями со своими коллегами. Дело как раз в том, что Зачем нужно...

одним из предметов ее исследования являются объекты и построение разОсновное –...

личных исчислений объектов, которые удовлетворяют кругу вопросов кажАппликативные...

дой конкретной прикладной задачи. Другими словами, решение всякой заКомпьютинг и...

дачи требует построения специального точного языка. Как хорошо известно Заключение программистам, это язык интерфейса программного обеспечения. В термиБлагодарности нах специалиста в computer science это специализированный диалект комСписок литературы бинаторной логики.

Home Page 3.4. Объекты и системный подход Title Page Если программистом для разработки избирается объектно-ориентированный подход, то скорее всего будет ошибкой подгонять решаемую задачу под какую-нибудь заранее известную математическую модель. Возможно, зна чительно лучше будет поискать нестандартное решение, которое в точности охватывает специфические особенности, связанные с самой природой Page 8 of прикладной области. В computer science для этого избирается метатеоGo Back рия, в рамках которой проводится исследование и которая “настраивается” на специфику прикладной области. Один из способов настройки – это Full Screen погружение прикладной теории (“меньшей” теории) в чистую метатеорию (“большую теорию”). Кроме того, с математической точки зрения в рамках Close комбинаторной логики удобно строить подтеории – специальные матемаQuit тические модули, которые в готовом виде задают механизмы вычислений, имеющие самостоятельное значение (см. [2], [10]). Такие рассуждения легко найдут отклик у программиста, вынужденного заниматься большим проВведение граммным проектом, когда преимущества рассуждений в терминах объекЗачем нужно...

тов и их свойств становятся особенно очевидными. Комбинаторная логика Основное –...

позволяет на математически идеализированных объектах предварительно Аппликативные...

“проиграть” все наиболее сложные и тонкие моменты взаимодействия меКомпьютинг и...

ханизмов большого программного проекта (см. [11]).

Заключение Благодарности Список литературы Home Page Title Page Page 9 of Go Back Full Screen Close Quit 4. Аппликативные вычислительные системы Традиционно в состав аппликативных вычислительных систем, или АВС, Введение включают системы исчислений объектов, основанные на комбинаторной лоЗачем нужно...

гике и ламбда-исчислении. Единственное, что существенно разрабатываетОсновное –...

ся в этих системах – это представление об объекте. В комбинаторной лоАппликативные...

гике единственный метаоператор – аппликация, или, по иной терминолоКомпьютинг и...

гии, приложение одного объекта к другому. В ламбда-исчислении два меЗаключение таоператора – аппликация и функциональная абстракция, позволяющая Благодарности связывать одну переменную в одном объекте.

Список литературы Возникающие в этих системах объекты ведут себя как функциональные сущности, имеющие следующие особенности:

Home Page число аргументных мест, или арность объекта заранее не фиксируется, но проявляет себя постепенно, во взаимодействиях с другими объектами; Title Page при конструировании составного объекта один из исходных объектов – функция, – применяется к другому – аргументу, – причем в других контекстах они могут поменяться ролями, то есть функции и аргументы рас сматриваются как объекты на равных правах;

Page 10 of разрешается самоприменимость функций, то есть объект может применяться сам к себе.

Go Back Вычислительные системы с таким наиболее общими и наименее ограFull Screen ничительными свойствами оказываются в центре внимания современного сообщества computer science. Именно они в настоящее время обеспечиваClose ют необходимые метатеоретические средства, позволяя исследовать свойQuit ства целевых прикладных теорий, дают основу построения семантических средств языков программирования и обеспечивают средства построения моделей данных/метаданных в информационных системах.

Введение Во второй половине 1970-х – начале 1980-х произошел взрыв в разЗачем нужно...

витии аппликативных вычислительных систем, приведший к развитию цеОсновное –...

лого спектра направлений исследований и изобилию научных публикаций.

Аппликативные...

Они написаны специальным языком, их прочтение и понимание, не говоря Компьютинг и...

уже об овладении существом дела, требовало основательной теоретической Заключение подготовки. Причин тому было несколько.

Благодарности Во-первых, в 1980 году теория аппликативных вычислений все еще акСписок литературы тивно развивалась, а одной из целей авторов публикаций было пробудить интерес и привлечь к исследования в этой области математически одаренHome Page ных студентов.

Pages:     || 2 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.