Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пн авг 08, 2022 09:15

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Программирование проблемно-ориентированного языка
СообщениеДобавлено: Сб окт 31, 2015 13:43 
Не в сети
Аватара пользователя

Зарегистрирован: Вт фев 17, 2009 19:58
Сообщения: 112
Откуда: Барнаул
Благодарил (а): 21 раз.
Поблагодарили: 16 раз.
Название: Программирование проблемно-ориентированного языка

Автор: Чарльз Х. Мур

Оригинальный текст: [Programming a Problem-Oriented-Language]

Перевод: "gudleifr" (псевдоним на сайте fforum.winglion.ru)

Особенности перевода:
    Перед каждым переведенным абзацем идет его исходный текст на языке оригинала. Это же относится к содержанию. Из "Примечания переводчика": "Это не перевод, я слишком плохо знаю английский. Это, скорее, построчный пересказ. Причем, абсолютно сырой - почти без вычитки и редактирования. Поэтому я оставил и исходный английский текст."

Издательство: опубликовано на сайте переводчика

Год оригинала: 1970

Год перевода: 2012

Язык: Русский

Обложка:
    Изображение

Описание (из книги):
    Я собираюсь рассказать вам, как написать программу. Это - определенная программа; т.е. программа с определенной структурой и возможностями. В частности, это - программа, которая может быть строго определенным способом расширена до целого комплекса, и, соответственно, стать способной решать комплексные проблемы. Одна из проблем, которые придется рассмотреть - проблема сложности. Как вы можете управлять вашей программой так, чтобы она осталась простой? Сначала я попробую абстрагироваться от проблем ввода. Правда, так как эти проблемы очень важны, долго рассматривать программы без ввода не получится.

    Допуская ввод, программа получает язык, позволяющий пользователю управлять ее работой. Естественно, это увеличивает гибкость программы, но требуют ли этого условия применения программы? Есть возможность достичь значительного упрощения программы, используя ввод для управления ее выполнением.

    Следующий шаг - проблемно-ориентированный язык. Разрешая программе динамически изменять свой язык управления, мы получаем качественное изменение способностей. Так мы переключаем наше внимание с программы на язык управления. Это и важно, и опасно. Здесь очень легко потерять из виду проблему, увлекшись красотой решения.

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

    Проблемно-ориентированный язык может описать любую проблему, из тех, с которыми я сталкивался. И помните, мы занимаемся не языком, но программой, которая реализует язык. Изменяя язык, мы можем применять ту же самую программу для других целей. Однако имеется класс расширений языка, которые дают новое качество. Они не увеличивают применимость программы, но расширяют способности языка. Делают язык более выразительным. Мы рассмотрим некоторые из таких расширений в Главе 8. Я собрал их вместе, в основном, потому, что одинаково их недопонимаю. Например, я думаю, что язык нужно обсуждать в концепциях человеческих языков.

    Наконец, я хочу описать процесс реализации программы на языке машины. Т.е. процесс загрузки и саморазвертывания программы.

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

    Пытаясь говорить просто, я затянул свои объяснения. Я надеюсь, что вы не сочтете это злостным нарушением Основного Принципа. Легче было сказать обо всем этом сейчас, чем возвращаться потом. Если вам действительно удобно, вы можете использовать мои подпрограммы. Но, если вы путаете то, что полезно, с тем, что необходимо, ваши программы будут расти бесконечно.

    Я не использую блок-схемы. Я никогда не любил их, поскольку считаю, что они местами избыточны, а местами недостаточны. Кроме того, они подразумевают большую жесткость в структуре программы, чем существует реально. Я буду давать конкретные рекомендации, но я буду использовать слова, а не блок-схемы. Блок-схемы лишь отняли бы время - и у меня, и у вас.

Особенность книги:
    Из предисловия (Чак Мур, 2011): "Это - неопубликованная книга, которую я написал давно. Сразу после того, как я написал первые версии FORTH. Возможно, это - обоснование FORTH задним числом."

Краткое содержание:
    0. Предисловие
    1. Введение
      1.1. Основной принцип
      1.2. Обзор
    2. Программы без ввода
      2.1. Выбор языка
      2.2. Выбор компьютера
      2.3. Мелочевка
      2.4. Имена
      2.5 Подпрограммы
    3. Программы с вводом
      3.1. Существительные и глаголы
      3.2. Цикл управления
      3.3. Подпрограмма word
      3.4. Десятичное преобразование
      3.5. Стеки
      3.6. Словарь
      3.7. Язык управления, пример
    4. Программы, которые растут
      4.1. Добавление словарных статей
      4.2. Удаление статей
      4.3. Операции
      4.4. Определение статей
      4.5. Кодовые статьи
    5. Программы с памятью
      5.1. Организация диска
      5.2. Текст на диске
    6. Программы с выводом
      6.1. Программы вывода
      6.2. Приглашение
      6.3. Строки
      6.4. Поля
    7. Общие программы
      7.1. Пользователь
      7.2. Очереди
      7.3. Частные словари
      7.4. Дисковые буфера
      7.5. Переключение пользователей
    8. Программы, которые думают
      8.1. Разбор слова
      8.2. Определения приоритета
      8.3. Бесконечный словарь
      8.4. Бесконечная память
    9. Загрузка
      9.1. Начало
      9.2. Корни
      9.3. Ветви

Стандарт языка: не указан

Ссылки:



За это сообщение автора kzagradskiy поблагодарил: mOleg
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB