Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 12
На сайте нет зарегистрированных пользователей

Пользователей: 13,361
новичок: uehuat
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Создание последовательности окон и передвижение окон по экрану на Turbo ...
Моделирование работы обрабатывающего участка цеха в GPSS
Лабораторная работа по динамическим спискам на Turbo Pascal (перемещение...

Обсуждение структуры книги
Структура книги и расположение отдельных разделов выполнены таким образом, чтобы читателю можно было наиболее полно сосредоточить внимание на вопросах, имеющих принципиальное значение.
• Синтез нового объекта
Одна из важных задач, решаемых в комбинаторной логике, формулируется как задача синтеза объекта с заданными свойствами из
имеющихся объектов применением уже известных способов комбинирования. На начальном этапе предполагается наличие всего трех
Более строго: системы нумералов
Комбинирование объектов
объектов-комбинаторов: I, K, S, а также их свойств, задаваемых
характеристическими равенствами. Для сохранения интуитивной ясности можно предполагать, что имеется система программирования
с этими тремя инструкциями, пользуясь исключительно которыми
предстоит построить довольно богатую по выразительным возможностям систему программирования. Результирующая система будет
содержать исключительно объекты-комбинаторы.
• Характеристики комбинатора неподвижной точки
Прозрачность комбинаторной логики делает ее весьма простой в
изучении. После первых продвижений может показаться, что в ней
всегда имеем дело с простыми и конечными по своей природе объектами. Однако это впечатление обманчиво, и пользуясь комбинаторами, можно представлять процессы, в том числе циклические
вычисления, которые представлют известную в программировании
работу со стеком рекурсии.
• Применение принципа экстенсиональности
Комбинаторная логика имеет ту особенность, что в ней строятся и
применяются функции с заранее не фиксированным числом аргументов. Это означает, что ответ на вопрос, сколько же у применяемой функции-объекта в действительности аргументных мест требует
известной осторожности. На самом деле аккуратное использование
довольно простых принципов экстенсиональности (расширяемости)
позволяет преодолеть эту неопределенность.
• Нумералы и их свойства
Обращаем внимание, что с самого начала в комбинаторной логике
среди первичных объектов нет . . . чисел. Дело в том, что концепцию числа можно разработать самостоятельно, пользуясь известными комбинаторами. Тогда числа предстают в несколько необычном облике -- они являются объектами, проявляющими свою арность
в зависимости от используемой системы постулатов. Точно так же
в виде комбинаторов удается разработать арифметические операции. Другими словами, арифметические сущности встраиваются в
комбинаторную логику. Эта ситуация хорошо знакома в объектноориентированном программировании -- приложение (арифметиче-12 Введение
ские объекты со своими правилами) встраивается в программную
среду (комбинаторную логику).
• Исследование свойств комбинаторов с типами
Концепция класса является одной из самых основных в объектноориентированных рассуждениях. Класс в этом случае понимается
как образец для создания экземпляров конкретных объектов. Более
того, классы сами могут рассматриваться как объекты. Точно также
комбинаторы классифицируются, или типизируются. Существенным
для комбинаторов оказывается высокий порядок функциональных
пространств. Тем не менее интуитивная ясность работы с комбинаторами как с объектами не теряется.
• Разложение термов в базисе I, K, S
Сосредоточим внимание на наипростейшей системе программирования, в которой всего только три инструкции: I, K, S. Синтезировать новый объект можно чисто механическим использованием алгоритма разложения в базисе, который вполне аналогичен процессу
компиляции.
• Разложение термов в базисе I, B, C, S
Как оказывается, базис I, K, S не единственный, и свойство базисности проявляет также набор комбинаторов I, B, C, S. Компиляция
(разложение) объекта в этом базисе также решает задачу синтеза
объекта с заданными свойствами. Очевидно, можно использовать
свободу выбора базиса в зависимости от некоторых критериев.
• Выражение определения функции с помощью оператора неподвижной точки Y
Рассматривается случай рекурсивных определений объектов. Пользуясь фундаментальной для функционального программирования
теоремой о неподвижной точке, рекурсивные определения удается
привести к обычному эквациональному виду.Комбинирование объектов 13
• Исследование свойств функции list1
Показываются возможности построения функции-объекта в параметризованном виде. Придавая аргументами частные значения -- а этими частными значениями могут быть и функции, -- можно получить
целое семейство определений частных функций.
• Установление изоморфизма декартово замкнутой категории и
апликативной вычислительной системы

Теперь начинаем продвигаться в глубь математических абстракций
и будем увязывать операторный стиль мышления с комбинаторным. Отметим, что в комбинаторной логике используется единственный оператор -- оператор аппликациии, или оператор приложения
(применения) одного объекта к другому. Возникающая при этом система вычислений носит название аппликативной вычислительной
системы. Она увязывается с традиционной операторной вычислительной системой, которая представлена специальным объектом -декартово замкнутой категорией.
• Построение отображения, каррирующего n-местную функцию
Используемые в операторном программированииn-местные функцииоператоры в комбинаторной логике имеют образы в виде объектов,
которые наследуют все их существенные свойства.
• Вывод основных свойств оболочки Каруби
Специальная категория, называемая оболочкой Каруби, позволяет
лаконично выразить весь запас знаний, имеющийся относительно
операторов, в терминах комбинаторной логики. При этом типы также
кодируются объектами. Тем самым выполняется погружение типового приложения в бестиповую программную среду.
•Декартово произведение и проекции: погружение в АВС
Окончательное завершение начатого процесса погружения достигается введением в рассмотрение упорядоченных совокупностей объектов. Как оказывается, аппликативные вычисления также допускают их представление.
• Представление LISP средствами ?-исчисления или комбинаторной логики
В аппликативную вычислительную систему встраивается нетривиальное приложение: значительный и, по-существу, полный фрагмент
известной системы программирования LISP.
• Реализация вычисления значений выражений с помощью суперкомбинаторов
Показывается, как работают объектно-ориентированные системы,
встроенные в комбинаторную логику. Тем самым непосредственно удовлетворяется потребность в денотационном вычислении инструкций языков программирования, когда объектами выражается
функциональный смысл программы. Существенно, что вычисление
начинается с некоторого заранее известного набора инструкций. В
процессе вычисления значения программы динамически возникают
заранее неизвестные, но необходимые по ходу дела инструкции, которые дополнительно фиксируются в системе программирования.
• Полностью ленивая реализация суперкомбинаторов
При динамическом формировании объектов “на лету” эффективность результирующего кода может теряться из-за необходимости
неоднократно вычислять значение одного и того же объекта. Применение механизмов ленивого означивания позволяет этого избежать:
если значение объекта уже однократно вычислено, то в дальнейшем
используется именно это заранее вычисленное значение.
• Оптимизация вычислений путем перестановки параметров
Применение комбинаторов открывает возможности строить оптимизированный программный код, попутно в ходе синтеза результирующего объекта анализируя порядок возможного замещения формальных параметров на фактические.Комбинирование объектов
• Реализация непосредственных вычислений выражений языков программирования
Пересматривается техника вычисления значения выражений в свете систематического построения набора синтактико-семантических
равенств, реализующих избранную парадигму объектно-ориентированных вычислений.
• Вычисление значения кода де Брейна
Вводится в рассмотрение техника переобозначения связанных переменных (формальных параметров), которая позволяет избежать
коллизий связывания при замещении формальных параметров на
фактические. Это прием переобозначения носит название кодирования по де Брейну и позволяет, фактически, аппаратом ?-исчисления
пользоваться на тех же самых правах, что и аппаратом комбинаторной логики.
• Реализация машинных инструкций категориальной абстрактной машины (КАМ)
Строится специальный вариант теории вычислений, называемый категориальной абстрактной машиной. Для этого вводится в рассмотрение специальный фрагмент комбинаторной логики -- категориальная комбинаторная логика. Она представлена набором комбинаторов, каждый из которых имеет самостоятельное значение как
инструкция системы программирования. Тем самым в комбинаторную логику встраивается еще одно полезное приложение -- система
программирования, основанная на декартово замкнутой категории.
Это позволяет еще раз на новом уровне переосмыслить связь операторного и аппликативного стиля программирования.
• Возможности оптимизации при вычислении на КАМ
Использование декартово замкнутой категории открывает дополнительные возможности оптимизации результирующего программного
кода. Помимо свойств самой комбинаторной логики, используемой в
качестве оболочки, допускается применение специальных категориальных равенств, заимствованных из декартово замкнутой категории
как из приложения.
• Переменные объекты
Заключительная часть рассмотрения исчислений объектов касается общих вопросов математического представления объектов. Показывается, что использование концепции функтор-как-объект позволяет в компактной и лаконичной форме обозреть основные законы объектно-ориентированных вычислений. В частности, акцент делается на системах меняющихся (переменных) понятий-концептов,
которые являются обычными объектами комбинаторной логики, но
проявляют полезные для программирования свойства. Например, с
помощью переменных концептов без особых осложнений строится
не только теория вычислений, но и семантика систем программирования, а также модели объектов данных. Данные-как-объект дают
новые степени свободы в компьютерных рассуждениях.
Опубликовал Kest April 02 2014 23:14:53 · 0 Комментариев · 3471 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
iChat v.7.0 Final...
3D Тетрис [Исходн...
Приемы программир...
Основы программир...
Ранги для форума
DragMe [Исходник ...
Delphi World 6.0
FilesInfo
Apollovcl61
PBEditPack
Пользовательская...
Tetris 2002
Переработанный пл...
Библиотека програ...
Платформа програм...
DelphiXIsoDemo1
mmmJlabel
Delphi. Готовые а...
Конвертирование и...
Report

Топ загрузок
Приложение Клие... 100771
Delphi 7 Enterp... 97788
Converter AMR<-... 20259
GPSS World Stud... 17014
Borland C++Buil... 14186
Borland Delphi ... 10267
Turbo Pascal fo... 7372
Калькулятор [Ис... 5968
Visual Studio 2... 5205
Microsoft SQL S... 3661
Случайные статьи
Динамические маршр...
Сохранение и загру...
Если он перечислен...
Источник данных
Метаданные. Аннота...
Управление трафико...
Основная особеннос...
Представления дере...
Основы
Главная или внутре...
Когда говорят про ...
Редактор изображен...
Сравнение ADO.NET ...
Значения атрибутов
Game Boy, 1989 год
Преимущества казин...
Программирование А...
Онлайн казино. Игр...
Металлические дета...
Изменение направле...
Стеки как структур...
будут соединяться ...
Решение для случая...
Как это настраивается
Аппаратные IP-теле...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?