Навигация
Главная
Поиск
Форум
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
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 65467
Модуль Forms 65224
Пример работы с... 64769
ТЕХНОЛОГИИ ДОСТ... 61928
Имитационное мо... 57799
Реклама
Сейчас на сайте
Гостей: 8
На сайте нет зарегистрированных пользователей

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

Моделирование круглосуточного интернет кафе на GPSS + Отчет
Моделирование процесса обработки заданий пакетным режимом работы с квант...
Моделирование вычислительного центра на GPSS + Отчет + Блок схема

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Обсуждение структуры книги
Структура книги и расположение отдельных разделов выполнены таким образом, чтобы читателю можно было наиболее полно сосредоточить внимание на вопросах, имеющих принципиальное значение.
• Синтез нового объекта
Одна из важных задач, решаемых в комбинаторной логике, формулируется как задача синтеза объекта с заданными свойствами из
имеющихся объектов применением уже известных способов комбинирования. На начальном этапе предполагается наличие всего трех
Более строго: системы нумералов
Комбинирование объектов
объектов-комбинаторов: 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 03 2014 03:14:53 · 0 Комментариев · 2445 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
PrevInst
Info
Генетический алго...
Blib [Исходник на...
Самоучитель PHP 5...
TMS
Язык программиров...
TrayComp
PHP: Полезные приемы
MpegPlay
Форма в форме
База игр
Шейдеры в Delphi
Создание оригинал...
С# для профессион...
UmEdit
Анимированное поя...
De Knop
Rss Parser
Эффект лампы на р...

Топ загрузок
Приложение Клие... 100470
Delphi 7 Enterp... 87111
Converter AMR<-... 20078
GPSS World Stud... 12865
Borland C++Buil... 11849
Borland Delphi ... 8609
Turbo Pascal fo... 7039
Visual Studio 2... 4999
Калькулятор [Ис... 4806
FreeSMS v1.3.1 3542
Случайные статьи
Как найти в Intern...
Легальный заработок
Эвакуатор Краснодар
Об этой книге
Содержание
Событие OnDragDrop
ВВЕДЕНИЕ В СПИСКИ
Ввод двух символьн...
Левое вращение AVL...
Ремонт холодильник...
Ввод программ
Все хотят писать э...
подкаталог Ех73
ПРЕДИСЛОВИЕ РЕДАКТ...
Глоссарий
Формат отображения...
(Ticket Granting S...
Методы и их резуль...
Упражнения для язы...
1.1. ДЛЯ КОГО ПРЕД...
Отправка и получен...
Взаимодействие кли...
Создание собственн...
Стоматологическая ...
Проектирование реш...
Статистика



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


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