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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - [осторожно, флуд]
Автор Сообщение
  Заголовок сообщения:   Ответить с цитатой
Цитата:
Переформулирую вопрос. Может ли существовать реализация Форта, которую вы будете продолжать считать Фортом, но согласитесь с тем что она не использует никакой разновидности шитого кода, в том числе и логического/виртуального?
А определение шитого кода - ПОНЯТНОЕ - давалось?
Сообщение Добавлено: Ср янв 16, 2008 17:14
  Заголовок сообщения:   Ответить с цитатой
Mihail писал(а):
По моему, шитый код, это код-команда виртуальной форт машины (ВФМ). Соответственно ВФМ это интерпретатор шитого кода.
Хм... По-моему не годится. Во первых, шитый код не есть привелегией именно Форт машины, поэтому слово Форт в определении присутствовать не должно. Но, допустим, заменим ВФМ на ВМ, тогда - во вторых если шитый код это машинный код виртуальной машины и больше ничего, тогда любой код который может вообще существовать в природе в совершенно любом представлении можно назвать шитым кодом по такому определению, поскольку возможно создать виртуальную машину которая будет непосредственно его выполнять. Понимаете? Получается что исходный АSCII текст написанный на С это уже шитый код, что бинарный исполняемый код х86 это тоже шитый код, поскольку возможно создать виртуальную машину как для первого так и для второго (Bochs например).
Mihail писал(а):
В качестве ВФМ может выступать и любая нативная машина.
Еще лучше - в таком случае из сказанного выше получается что токен шитого кода является машинным кодом нативной машины, то-есть - любой машинный код нативной машины является шитым кодом? Если не любой, тогда где грань?
Mihail писал(а):
Особенностью шитого кода является то, что он может быть представлен в качестве вызова подпрограммы на том-же шитом коде.
Это случайно не есть особенность любого языка допускающего подпрограммы? И системы комманд всех современных процессоров обладают этой особенностью, и все (функциональные) языки высокого уровня. Так что это не есть особенность совсем.
Mihail писал(а):
Шитый код, как правило не имеет операндов,в исключительных случаях, операндами занимается сама вызванная команда.
Слишком условно - операндами х86 тоже занимается сама комманда, и можно сказать что их обычно нет, просто это "обычно" случается очень редко ;). Так что, вопрос в статистике по частоте использования аргументов? Но это в общем случае не может быть характеристикой шитого код а является особенностью архитеуры ВМ. В случае форта она нуль операндная, поэтому и аргументы случаются редко, но это не имеет ни какого отношения к шитому коду, поскольку никто не запрещает хоть каждому токену брать сколько угодно аргументов с самого шитого кода. Шитый код это позволяет, так что это не правило.

Таким образом, я считаю ваше определение некорректным.

ЗЫ. Шитый код является разновидностью реализации интерпретаторов или виртуальных машин. Это уже точно, поскольку компиляторы его не используют ;). Но, если результат работы транслятора есть кодом исполнимым на железной машине (и не включает дополнительного кода эмуляции виртуальной машины) то это код называется машинным кодом а транслятор компилятором. Можно конечно поиграть со словами, но подпрограммный шитый код является машинным кодом значит шитым кодом быть не может поскольку шитый код от машинного отличается виртуальностью самой машины. Если машина железная - это машинный код, если виртуальная - шитый (или что-то еще, с более сложным синтаксисом). Никто не называет машинный код NC4016 шитым кодом - это машинный код, не смотря на то, что на шитый код впервые реализованный в форте он похож куда как более чем последовательность колов в x86. И не стоит говорить что сама комманда call является интерпретатором, это не так, интерпретатор не может состоять из одной комманды, если комманда одна - то это комманда процессора, и то что она делает не есть интерпретацией а непосредственным исполнением на уровне системы комманд процессора. Другими словами - процессор не интерпретирует свою систему комманд, он ее исполняет. Отличие опять же в уровне виртуальности.

Mihail писал(а):
Цитата:
И все же, какой из перечисленных методов недопустим для Форта? ANSI допускает все, вы нет?
Я тоже.
Переформулирую вопрос. Может ли существовать реализация Форта, которую вы будете продолжать считать Фортом, но согласитесь с тем что она не использует никакой разновидности шитого кода, в том числе и логического/виртуального?
Сообщение Добавлено: Ср янв 16, 2008 16:28
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
Mihail писал(а):
Где это ты нашел такое определение шитого кода?
Не помню. Всю жизнь его знал. Но раз у тебя оно другое, изложи!


Ну попробую:
По моему, шитый код, это код-команда виртуальной форт машины (ВФМ). Соответственно ВФМ это интерпретатор шитого кода.
В качестве ВФМ может выступать и любая нативная машина. Особенностью шитого кода является то, что он может быть
представлен в качестве вызова подпрограммы на том-же шитом коде. Шитый код, как правило не имеет операндов,
в исключительных случаях, операндами занимается сама вызванная команда.

Forthware писал(а):
И все же, какой из перечисленных методов недопустим для Форта? ANSI допускает все, вы нет?


Я тоже.
Сообщение Добавлено: Пт дек 28, 2007 14:20
  Заголовок сообщения:   Ответить с цитатой
Mihail писал(а):
А сели я для экономии памяти использую шитый код, размер которого меньше CELL ?
Семантика такой реализации будет отличаться от семантики реализаций с шитым кодом. Токен должен быть CELL , а скомпилированное определение должно быть последовательностью токенов. Такова была модель шитого кода в Форте. Поэтому, не смотря на то что байт код или табличный шитый код на самом деле является шитым кодом, он тоже не относится к той же семантической группе что и прямой или косвенный шитый код в Форте (за исключением тех случаев когда он представляется в виде последовательности полноформатных ячеек, что в общем случае делать не выгодно).
Чтобы не скатиться в философские размышления на тему "шитости" шитого кода, предлагаю не выходить за рамки обсуждаемой нами области, а именно, реализаций Форта.
Mihail писал(а):
(или больше, если значение CELL не позволяет охватить все адресное пространство).
А вот такого даже ANSI94 делать не разрешает. CELL в Форте всегда ориентировался на разрядность адресса системы а не на разрядность CPU. Поэтому на 8ми битных машинах 8битного форта никто не делал. CELL ни в какой реализации не может быть меньше разрядности адреса. В ANSI это тоже так. Теоретически, конечно, такую реализацию создать можно (и я согласен что это тоже будет версия Форта), но ее семантика будет далека от всего что существовало раньше.
Mihail писал(а):
И зачем использовать "," , когда полагается использовать "COMPILE," ?
В ФИГ, 79, ПолиФорте такого слова нет, в 83 тоже. Броди о нем ничего не слышал (когда писал свои книги). Оно узаконено в ANSI именно для того, чтобы разрешить создание реализаций не на шитом коде. Но дело не в нем, а в том, что семантика других слов, например "," в SPF не соответствует семантике этого слова в реализациях с шитым кодом. И не только, как там обстоят дела с COMPILE ? ;)
Mihail писал(а):
Где это ты нашел такое определение шитого кода?
Не помню. Всю жизнь его знал. Но раз у тебя оно другое, изложи! Подумаем кто прав. :)
Mihail писал(а):
В команде call как-раз ссылка есть, в отличие от свернутого шитого кода.
В комманде call есть ссылка, и в консерве есть рыба, но не только. Последовательность call-ов есть машинный код. Шитый код не есть машинный код. В процесоорах выполняющих непосредственно шитый код, он уже шитым кодом не называется а называется машинным кодом. Одиночный элемент шитого кода не есть машинной коммандой а ссылкой (указателем, адрессом, смещением, любой комбинацией из них). Уровень абстракции на который намекаете вы приводит меня к мысли, что шитый код это последовательность кусков информации, которые указывают на определенное действие. И ничего больше, поскольку формат и размер этих кусков роли не играет, и даже является постоянным. Однако если это так, тогда ЛЮБОЙ машинный код является шитым код, что не есть верно.
Mihail писал(а):
Как я понимаю, "логический" в программировании это типа "мнимый". Логический диск, тоже диском не является.
Хорошо. Тогда у тебя "логический подпрограммный шитый код" а не "логический шитый код". Согласен?

Ну так вот, к чему это мы? Вы продолжаете считать что Форт можно реализовать только с помощью шитого кода? А то получается, что сначала вы говорите о том, что это так, и, например, прямая компиляция текста уже не Форт, то тепер вспомнили про вариант шитого кода с токенамы большими за CELL , чего даже сверх либеральный ANSI, позволяющий и текстовую компиляцию, не допускает? В чем ваша мысль? :?
Ну и мне все еще интересно:
Forthware писал(а):
И все же, какой из перечисленных методов недопустим для Форта? ANSI допускает все, вы нет?
Сообщение Добавлено: Чт дек 27, 2007 18:33
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
Практический пример: семантика реализаций с шитым кодом допускает компиляцию токена в текущее определение с помощью ",". Это возможно только в реализациях 2 и 3.


А сели я для экономии памяти использую шитый код, размер которого меньше CELL ?
(или больше, если значение CELL не позволяет охватить все адресное пространство).
И зачем использовать "," , когда полагается использовать "COMPILE," ?

Forthware писал(а):
А подпрограммный на самом деле шитым кодом не является - шитый код это последовательность ссылок на обработчки, которой последовательность call-ов, строго говоря не является.


Где это ты нашел такое определение шитого кода? В команде call как-раз ссылка есть, в отличие от
свернутого шитого кода.

Как я понимаю, "логический" в программировании это типа "мнимый".
Логический диск, тоже диском не является.
Сообщение Добавлено: Чт дек 27, 2007 12:33
  Заголовок сообщения:   Ответить с цитатой
Mihail писал(а):
Разновидности шитого кода это разновидности Фортов.
Ну так обязан ли Форт использовать разновидность шитого кода?
Mihail писал(а):
В SPF в режиме оптимизации, используется логический шитый код.
Что значит "логический шитый код"? Я такой разновидности не знаю. Возможны следующие способы компиляции определений высокого уровня в Форте:
1. прямая текстовая (сохраняется непосредственно текст определения)
2. прямой шитый код (последовательность ссылок на машинный код обработчиков)
3. косвенный шитый код (последовательность ссылок на ячейку хранящую адрес машинного кода обработчика)
4. байт код (последовательность номеров ячейки в таблице, хранящей адреса машинного кода обработчика)
5. подпрограммный шитый код (последовательность машинных инструкций вызова подпрограмм)
6. прямая компиляция (последовательность фрагментов машинного кода и вызовов подпрограмм)
7. оптимизированная компиляция (машинный код, который невозможно четко разделить на отдельные слова)
8. трансляция в промежуточный язык (исходник другого языка, может быть как текстовым так и бинарным)

Семантику соответствующую стандарту 79 и 83 можно реализовать исключительно вариантами 2 и 3. Семантику стандарта ANSI можно реализовать с помощью любого (!) из перечисленных методов.
Семантика SPF не соответствует стандартам 79 и 83 и не соответствует семантике реализаций с шитым кодом (2 и 3).
Таким образом, подпрограммный шитый код в Форте не можно относить к той же семантической группе что и другие виды шитого кода (байт код тоже).
Практический пример: семантика реализаций с шитым кодом допускает компиляцию токена в текущее определение с помощью ",". Это возможно только в реализациях 2 и 3.
Ваша реализация не имеет семантики шитого кода в общем случае. А подпрограммный на самом деле шитым кодом не является - шитый код это последовательность ссылок на обработчки, которой последовательность call-ов, строго говоря не является.
Ну а то что есть такое название как "подпрограммный шитый код", вопрос термина, не больше. "Каспийское море" тоже морем не является, хоть это слово и присутствует в его названии.
Так что вы ошибаетесь - SPF не использует шитый код и его семантика шитому коду не соответствует.

И все же, какой из перечисленных методов недопустим для Форта? ANSI допускает все, вы нет? :?
Сообщение Добавлено: Чт дек 27, 2007 00:23
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
Считаете что Форт 1970 года в котором еще не было шитого кода Фортом не был? Или что SPF Фортом не является? Тогда уточните, как именно должен транслироваться настоящий Форт.


Разновидности шитого кода это разновидности Фортов. Особенностью конкретной реализации можно пользоваться
(если очень хочется). Устройство форт-системы определяет семантику Форта. Вообще, для полноценного
использования форт-системы, программы строятся из понимание ее устройства. Даже, если ты
не пользуешься ее особенностями по отношению к другим видам форт-систем. Пока не разберешься
с устройством одной из Форт-систем (исходниками) не поймешь идею Форта.
В SPF в режиме оптимизации, используется логический шитый код. Дело в том, что вся компиляция
производится по средствам слова COMPILE, , а скомпилированная таким образом программа работает так-же,
как если-бы COMPILE, компилировала подпрограммный шитый код.
Тоже касается и устройства словарей.
Сообщение Добавлено: Ср дек 26, 2007 16:16
  Заголовок сообщения:   Ответить с цитатой
Kopa писал(а):
А то, что препроцессор Cи - это отдельный исполняемый модуль не интегрируемый с основным компилятором - умалчиваем?
А что это меняет?
Kopa писал(а):
Не говоря уже об его недоразвитости
Почему же, я не говорю что он сильно развит, а только про факт что в результате синтаксис С жестким считать нельзя.
Kopa писал(а):
Понимается в виду Си препроцессор? Тогда дайте ссылку на эту реализацию, чтобы обрабатывать файлы С++ и компилировать их на выполнение с помощью Си компилятора.( мне интересно )
Спросите и Страуструпа. Я к этому отношения не имею.
Kopa писал(а):
Но в необходимой мере используют эту возможность
Верно, и в С возможности препроцессора тоже используются по мере необходимости.
Kopa писал(а):
К какому понятию относится открытие Америки? ( подозреваю, что к изобретению
А что, Америка до ее открытия не существовала? :shock: Думаю, что таки существовала, значит это "открытие".
Kopa писал(а):
P.S. То, что на любом языке программирования можно смоделировать обработку другого языка сути не меняет.
Я не знаю про какую суть вы говорите, но этот разговор начал Михаил, заявив что Форт не является языком программирования. По вашему это подтверждается тем что "что на любом языке программирования можно смоделировать обработку другого языка"? :?
Сообщение Добавлено: Ср дек 26, 2007 13:28
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
И без рамок Форт системы С не имеет жесткого синтаксиса и семантики, поскольку ее можно грубо менять с помощью препроцессора.


А то, что препроцессор Cи - это отдельный исполняемый модуль не интегрируемый
с основным компилятором - умалчиваем? Не говоря уже об его недоразвитости :evil:

Forthware писал(а):
синтаксис С был реально переделан в С++ таким образом
.


Понимается в виду Си препроцессор?
Тогда дайте ссылку на эту реализацию, чтобы обрабатывать файлы С++
и компилировать их на выполнение с помощью Си компилятора.( мне интересно )

Forthware писал(а):
И в отличии от Форта, для которого возможность создания новых языков является возможной, но никто ее не воплотив в реальность (полноценно),
.


Но в необходимой мере используют эту возможность :))

Forthware писал(а):
Открытие и изобретение разные вещи - открытие, это доказательство того что существует нечто, а изобретение это создание того, что раньше не существовало.
.


К какому понятию относится открытие Америки? ( подозреваю, что к изобретению :)

P.S. То, что на любом языке программирования можно смоделировать обработку
другого языка сути не меняет.
Сообщение Добавлено: Ср дек 26, 2007 08:36
  Заголовок сообщения:   Ответить с цитатой
Хищник писал(а):
вопрос писал(а):
Разумеется (там смайлик смеётся) машина Тьюринга - это модель , абстрактная (нереализуемая) , но "чего-то подобного" - стоит посоображать, что-то тут есть.

Так везде что-то подобное есть :) МТ - это способ представления алгоритмов, пока еще не найден алгоритм, который МТ не могла бы выразить. На низком уровне любой язык так реализован - ползает по ленте и что-то там меняет.

МТ - абстрактная модель алгоритма вообще. И любой язык (точенее любая грамматика ) к ней ближе или дальше. Наиболее общая грамматика как раз позволячет реализовать алгоритм с той свободой, с кроторой сама абстрактная модель алгоритма вообще, т.е. имея дело с наиболее общей грамматикй мы имеем дело с ТМ
Сообщение Добавлено: Вт дек 25, 2007 19:56
  Заголовок сообщения:   Ответить с цитатой
K`[f писал(а):
Для примитивного Бейсика, наверное, действительно возможен простой компилятор. Фортран я не знаю. А ассемблер - это смотря какой...
Вот, значт под этот критерий, кроме Форта еще попадает 30% всех языков программирования.
K`[f писал(а):
Семейство 80x86 изначально было заморочено.
Смотря какой синтакс брать - существует много разных синтаксисов ассемблера х86. Обратите внимание на классический Форт ассемблер х86.
K`[f писал(а):
См. пункт 2 - всё я предусмотрел.
Смотрю:
Цитата:
2. Идея элементарного способа компиляции
, но намеков на интерактивность на вижу.
K`[f писал(а):
Некорректное сравнение - поток управления в Форте реализуется стеком и связными структурами.
Ну и что? В асме таблицей ссылок. Чем одно хуже другого? Как влияет на количество проходов?
K`[f писал(а):
Это далеко не одно и то же, что переход по метке в асме, который может быть когда угодно и откуда угодно.
И что из этого следует что меньше 2-х проходов сделать невозможно? :shock:
K`[f писал(а):
Что-то у вас все кругом бредят...
Нет, только вы, только в этой фразе. :twisted:
K`[f писал(а):
Мне этот ваш довод напоминает термин "программирование", который употребляется для регуляторов там разных - по определению тупых.
Макросы не тупые, в них даже условные операторы есть, и выполняются они в процессе компиляции.
K`[f писал(а):
Макросы занимаются кодогенерацией, а не исполняются в привычном понимании.
Вот именно! Они выполняются в процессе компиляции, а не в готовом коде. То же самое делают IMMEDIATE слова в Форте. Если вы не согласны, то укожите на конкретное отличие пожалуйста.
K`[f писал(а):
Да собственно они и не "занимаются", а "над ними" занимаются.
Это смотря как смотреть - слова форта выполняются, или их выполняет Форт? :? :)) Называйте как хотите, результат от этого не изменится.
K`[f писал(а):
Хм... По моему опыту всё строго наоборот...
Смотрите обьем исходников Форта на Форте, и Ассемблера на Форте.
K`[f писал(а):
Конечно, если вы разрабатываете ассемблер для Z80, то может быть и так.
Если вы разрабатываете Ф79 то это тоже не SPF. ;)
K`[f писал(а):
Но простейшая реализация Форта, имхо, гораздо проще - там надо-то с десяток-другой примитивных слов.
И что, уже можно будет на таком программы писать?! :shock:
K`[f писал(а):
Но всё-таки Форт более "однопроходной",
Или 1 или 2. Проход есть проход, пол-прохода не существует. :dmad;
K`[f писал(а):
если уж на то пошло - по стандарту это всё организовано в виде стека и действует только при компиляции текущего слова.
В паскале тоже, и как это влияет на количество проходов? Никак. Если ссылка назад, то ее адрес уже лежит в таблице в момент использования ее в коде. Если же ссылка вперед, то в момент ее появления, в таблице лежат адреса всех неразрешенных ссылок (либо адрес последней, а уже в ней адрес предыдущей и т.д.). Поиск по таблице нельзя считать как второй проход или пол-прохода, поскольку Форт делает аналогичный поиск при обработке каждого слова - он выполняет поиск в словаре совершенно аналогичный поиску метки в таблице ассемблером. Так почемуже тогда ассемблер более многопроходный?
Mihail писал(а):
Не любой другой язык программирования а транслятор любого языка программирования
(это разные вещи) и (как правило) с помощью линковщика. К томуже, текст может
сразу исполнятся интерпретатором. И не Форт, а форт-система, которая может
как интерпретировать, так и компилировать текст (не только текст).
Особенностью компиляции форт-системой является соморасширение, тат-как
скомпилирванные программы имеют тоже представление в системе, какое имеют
прогмаммы из каторых состоит тело форт-состемы.
Вы говорите не о том ЧТО оно делает, а о том КАК оно это делает. А это уже просто характеристика языка, а не фак его принадлежности к языкам. В любом случае, на основе исходного текста создается новая функциональность машины, которую можно потом использовать, выполнять.
Цитата:
Т.е. Форт-система: текст -> расширенная форт-система.
Даже при целевой компиляции? И опять же, какая разница, является ли результат расширением чего-то, добалением чего-то или созданием чего-то? Результат всегда один - это ИСПОЛНЯЕМЫЙ КОД. Все. Сформировался ли он статической компиляцией, или вообще формируется динамически в процессе интрпретации, это вопрс того КАК решается задача, а задача везде одинакова: текст->код. И то что это делает называется реализацией языка программирования.
Mihail писал(а):
Как минимум, я его отнесу к тому-же классу, что и Форт. К стати, Си в рамках форт-системы может обладать этим свойством.
Уже относите. И без рамок Форт системы С не имеет жесткого синтаксиса и семантики, поскольку ее можно грубо менять с помощью препроцессора. И в отличии от Форта, для которого возможность создания новых языков является возможной, но никто ее не воплотив в реальность (полноценно), синтаксис С был реально переделан в С++ таким образом.
Я не говорю что оно также гибко как и Форт, но сказать что такой возможности нет, нельзя. Поэтому ваш критерий отсутствия "жесткого синтаксиса" не является уникальной особенностью Форта.
Mihail писал(а):
Определять следует исходя из позитива. Т.е. что полезного Форт дает, производителем того он и является.
Так вопрос стоял что считать фортом, а не в том, чего производителем чего он является. Верно? Тогда возможно обратный вывод - "производитель чего" можно называть Фортом?
Mihail писал(а):
Про Мура говорят, что он сам не понял что открыл.
Да, конечно, вот те кто это говорят уж точно лучше за Мура поняли что это... :)) Мне это напоминает проф. критоков, которые сами не умеют, но за автора всегда лучше знают что у него получилось. :lol:
Mihail писал(а):
Назвнием да, он не определение котегории открытого предмета. Если я найду остров я не могу определить его как озеро.
Вот только Мур ничего не открыл, он изобрел Форт. Открытие и изобретение разные вещи - открытие, это доказательство того что существует нечто, а изобретение это создание того, что раньше не существовало. Но дело даже не в этом, по вашей аналогии с островами и озерами, Форт таки язык. Если нет, скажите что тогда? Если такой категории ранее не существовало, значит автор вправе называть ее по своему усмотрению.
Сообщение Добавлено: Вт дек 25, 2007 19:56
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
А если у С не будет жесткого синтаксиса и семантики, вы его начнете называть Форт?


Как минимум, я его отнесу к тому-же классу, что и Форт. К стати, Си в рамках форт-системы
может обладать этим свойством.

Mihail писал(а):
Mihail писал(а):
Т.к. интереса он для меня представлять не будет, даже если он формально подпадет под какоето его определение.
Так что же, значит это ваш интерес является единственным обьективным критерием того что ЯП является Фортом?


Определять следует исходя из позитива. Т.е. что полезного Форт дает, производителем того он и
является.

Forthware писал(а):
При всем уважении, если бы такое сказал Чак Мур, я бы еще понял, а так... Может какая то аргументация есть?


Про Мура говорят, что он сам не понял что открыл. :D

Forthware писал(а):
Названия открытым звездам дает тот кто их открыл, так же и новым землям, и даже елементарным частицам.


Назвнием да, он не определение котегории открытого предмета.
Если я найду остров я не могу определить его как озеро.
Сообщение Добавлено: Вт дек 25, 2007 12:53
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
Форт: текст -> исполняемый код.
Любой другой язык программирования: текст -> исполняемый код.


Не любой другой язык программирования а транслятор любого языка программирования
(это разные вещи) и (как правило) с помощью линковщика. К томуже, текст может
сразу исполнятся интерпретатором. И не Форт, а форт-система, которая может
как интерпретировать, так и компилировать текст (не только текст).
Особенностью компиляции форт-системой является соморасширение, тат-как
скомпилирванные программы имеют тоже представление в системе, какое имеют
прогмаммы из каторых состоит тело форт-состемы.
Т.е. Форт-система: текст -> расширенная форт-система.
Форт-система в процессе восприятия текста может как угодно преобразится.
Благодаря чему, любой формализованный текст может быть воспринят форт-системой
Сообщение Добавлено: Вт дек 25, 2007 12:18
  Заголовок сообщения:   Ответить с цитатой
Ээээ, уважаемые коллеги, а вы не смешиваете ли в своих рассуждениях сложность алгоритмов, которые можно реализовать на форте, и сложность распознавания (и последующей трансляции) текста программы на форте - грамматика языка определяет именно вторую сложность, а к первой почти никакого отношения не имеет.
Сообщение Добавлено: Вт дек 25, 2007 11:52
  Заголовок сообщения:   Ответить с цитатой
вопрос писал(а):
Разумеется (там смайлик смеётся) машина Тьюринга - это модель , абстрактная (нереализуемая) , но "чего-то подобного" - стоит посоображать, что-то тут есть.

Так везде что-то подобное есть :) МТ - это способ представления алгоритмов, пока еще не найден алгоритм, который МТ не могла бы выразить. На низком уровне любой язык так реализован - ползает по ленте и что-то там меняет.
Сообщение Добавлено: Вт дек 25, 2007 09:45

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


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