Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Сб июл 02, 2022 11:33

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Программирование проблемно-ориентированного языка
Автор Сообщение
  Заголовок сообщения:  Программирование проблемно-ориентированного языка  Ответить с цитатой
Название: Программирование проблемно-ориентированного языка

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

Оригинальный текст: [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. Ветви

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

Ссылки:
Сообщение Добавлено: Сб окт 31, 2015 13:43

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


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