Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 20:13

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - Как работает форт? (в качестве ликбеза)
Автор Сообщение
  Заголовок сообщения:   Ответить с цитатой
А отмечания бакалавра еще и не было... :) оно на следующую неделю намечено... когда диплом получу...
Сообщение Добавлено: Вс июн 21, 2009 23:42
  Заголовок сообщения:   Ответить с цитатой
WingLion писал(а):
Речь о смысле жизни, а не о выкрутасах преисподней!

+1000
Это не на утро после отмечания бакалавра такие мысли в голову заходят?
Сообщение Добавлено: Вс июн 21, 2009 23:31
  Заголовок сообщения:   Ответить с цитатой
хм... А вам только шашечки подавай?

Речь о смысле жизни, а не о выкрутасах преисподней!
Сообщение Добавлено: Пт июн 19, 2009 23:15
  Заголовок сообщения:   Ответить с цитатой
Цитата:
и компилирует ее вызов
инлайн не учтён :D
Сообщение Добавлено: Пт июн 19, 2009 20:37
  Заголовок сообщения:  Как работает форт? (в качестве ликбеза)  Ответить с цитатой
Ответ на этот вопрос явно необходим, а по сему попытаюсь это сделать здесь, объясняя как можно проще.

(Ссылок не даю, потому что в каждой мало-мальски правильной книжке по Форту все это рассказано, возможно, иными словами, но по сути - то же)


Первое. Как работает простейший интерпретатор?

1. Интерпретатор берет из входного потока (файла, строки ввода и т.п.) слова.
(Каждому (опредленному) слову в форте соответствует некая программа.)
2. Интерпретатор находит программу, соответствующую взятому слову
3. и вызывает ее на исполнение.
После чего интерпретатор берет следующее слово и снова повторяет все действия по кругу, т.е.
4. -- зацикливание на 1.

Если интерпретатору попадается незнакомое(неправильное) слово, то он начинает "ругаться".

Второе. Как работает простейший компилятор?

1. Компилятор берет из входного потока (файла, строки ввода и т.п.) слова.
(Каждому (опредленному) слову в форте соответствует некая программа.)
2. Компилятор находит программу, соответствующую взятому слову
3. и компилирует ее вызов в компилируемую программу.
После чего компилятор берет следующее слово и снова повторяет все действия по кругу, т.е.
4. -- зацикливание на 1.

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

А вот, чтобы переключиться назад, т.е. с компиляции на интерпретацию, переключающие слова должны иметь специальный признак - признак немедленного исполнения. Компилятор, встретив слово с таким признаком не компилирует его, а исполняет. Поэтому слово переключения с компиляции на интерпретацию имеет такой признак.

Теперь о том, как же связываются скомпилированные программы с новыми словами?

Для этого существуют так называемые определяющие слова.
Определяющее слово создает в словаре форта новую статью и включает компиляцию так, что все последующие слова компилируются в тело нового слова.

Когда программа написана, другое специальное слово (с признаком немедленного исполнения!) заканчивает определение - компилирует в конец программы код возврата и переключает систему в режим интерпретации.

После этого новое слово готово к использованию. И, когда интерпретатор встречает его во входном потоке, он вызывает на исполнение тот код, что был скомпилирован для этого слова.
Сообщение Добавлено: Пт июн 19, 2009 19:29

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


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