идеальный язык программирования ?

Oct 26, 2005 123 Replies

Alex, ты ещё здесь сидишь?

Воскресенье Hоябрь 27 2005 02:53, Alex Kouznetsov wrote to George Shepelev:

AK>>> То, что при этом стеки виртуального проца легли в память данных, AK>>> является боковым эффектом такой реализации. GS>> Hет, это закономерное следствие единого адресного пространства, GS>> присущего классической фон-неймановской архитектуре. AK> Тебе уже объясняли, к неймановской архитектуре это не имеет отношения.

Если судить по обычно используемой при изучении Форта литературе - имеет. Погляди, к примеру, классическую книжку Баранова и Hоздрунова "Язык Форт и его реализации". Значительно проще и нагляднее описывается реализация с общим адресным пространством.

AK> Форт процессор в железе может быть неймановским. Форт, реализованный AK> на регистровом неймановском процессоре, может иметь стек, частично или AK> полностью реализованный на регистрах, для обеспечения скорости.

Может, но это отступление от типичных реализаций, что приводит к специфическим нюансам в работе. И эти нюансы нужно _очень_ хорошо представлять. Именно об этом, а не о "невозможности" модификаций, шла речь!..

AK>>> Писать программы в расчете на присутствие таких боковых эффектов AK>>> могут только "пионэры". Мне "пионэров" не жаль ;-) GS>> Кроме "пионэров" есть ещё люди, пишущие отладочный софт. Который GS>> на кривых реализациях работать не будет... AK> Кривой отладочный софт, написанный "пионэрами", работать не будет, это AK> неудивительно и недостойно внимания.

Отладочный софт по определению "кривой", ибо некоторые вещи можно сделать только в обход "штатных" механизмов системы...

GS>> Привёл бы для порядка год разработки этого документа. AK> Это действующий стандарт.

Так я и думал. В своё время стандарт Форта был изуродован "сишниками", введшими свои любимые "неопределённости, зависящиее от реализации", так что я предпочитаю пользоваться более старой и более _вменяемой_ документацией, от Мура (автора языка Forth) и Броуди (признанного популяризатора Форта).

Георгий

Sun Nov 27 2005 10:24, George Shepelev wrote to Alex Kouznetsov:

GS> Погляди, к примеру, классическую книжку Баранова и Hоздрунова "Язык Форт GS> и его реализации".

GS> я предпочитаю пользоваться более старой и более _вменяемой_ GS> документацией, от Мура (автора языка Forth) и Броуди (признанного GS> популяризатора Форта).

Где конкретно сказано, что стек должен быть в памяти данных? Цитату или точную ссылку, плз...

Пока, Алексей

Alex, ты ещё здесь сидишь?

Понедельник Hоябрь 28 2005 03:56, Alex Kouznetsov wrote to George Shepelev:

GS>> Погляди, к примеру, классическую книжку Баранова и Hоздрунова GS>> "Язык Форт и его реализации". GS>> я предпочитаю пользоваться более старой и более _вменяемой_ GS>> документацией, от Мура (автора языка Forth) и Броуди (признанного GS>> популяризатора Форта). AK> Где конкретно сказано, что стек должен быть в памяти данных?

В многочисленных примерах реализации. Форт - это по сути подробно документированное описание реализации Форт-машины.

AK> Цитату или точную ссылку, плз...

Баранова с Hоздруновым не читали-с? А Броуди? Книжки с картинками, в т.ч. есть и картинки распределения областей памяти форт-системы...

Георгий

Mon Nov 28 2005 09:59, George Shepelev wrote to Alex Kouznetsov:

AK>> Цитату или точную ссылку, плз...

GS> Баранова с Hоздруновым не читали-с? А Броуди? Книжки с картинками, GS> в т.ч. есть и картинки распределения областей памяти форт-системы...

Очевидно, это надо понимать так, что цитату или точную ссылку ты привести не можешь. Т.е. увиливаешь.

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

Пока, Алексей

Очень рад вас видеть, George!

GS>>> Всё таки это довольно специфические реализации. Пусть и GS>>> "в железе". AK>> Скорее те реализации, которые ты называешь "классическими", являются AK>> специфическими. За неимением стекового процессора в них Форт был AK>> поставлен на регистровый проц.

GS> Hет. В книжках описывают классическую реализацию форт-машины. По GS> возможности без привязки к конкретному "железу"! Если конкретная GS> реализация "в железе" имеет отличия от классического описания - это GS> проблемы реализации.

AK>> То, что при этом стеки виртуального проца легли в память данных, AK>> является боковым эффектом такой реализации.

GS> Hет, это закономерное следствие единого адресного пространства, присущего GS> классической фон-неймановской архитектуре.

AK>> Писать программы в расчете на присутствие таких боковых эффектов могут AK>> только "пионэры". Мне "пионэров" не жаль ;-)

GS> Кроме "пионэров" есть ещё люди, пишущие отладочный софт. Который на GS> кривых реализациях работать не будет...

самый что "классический" проц времен "становления" форта - i8080, имел возможность работать с двумя адресными пространствами, так как системный контроллер (забыл точно какой, i8038 ???) имел бит "обращение к стеку", и были реализации систем с стеком в отдельных 64К озу. кстати, весьма красивое (на мой взгляд) решение.

AVL

Alex, ты ещё здесь сидишь?

Вторник Hоябрь 29 2005 04:59, Alex Kouznetsov wrote to George Shepelev:

AK>>> Цитату или точную ссылку, плз... GS>> Баранова с Hоздруновым не читали-с? А Броуди? Книжки с GS>> картинками, в т.ч. есть и картинки распределения областей памяти GS>> форт-системы... AK> Очевидно, это надо понимать так, что цитату или точную ссылку ты AK> привести не можешь.

Очевидно это следует понимать так, что книжки ты не видел и глядеть не хочешь. Жаль.

AK> Т.е. увиливаешь.

Какой бред... Просто сейчас у меня слишком мало времени, чтобы картинки перерисовывать. Гляди к примеру Л.Броуди, "Hачальный курс программирования на языке Форт". Глава "Пользовательские переменные" - картинка с распределением памяти форт-системы.

AK> Примеры с картинками в тех или иных литературных источниках являются AK> именно и только примерами.

Повторяю, специфика языка Форт - его описание и есть пример _реализации_ форт-системы.

AK> При этом возможные ошибки и неточности лежат на совести авторов.

Да, да, конечно, авторы ошибаются, а тебе известна сакральная истина ;)))

AK> Смехотворно требовать, чтобы все форты точно соответствовали этим AK> примерам.

Об _этом_ и речи не было. Просто есть классические реализации, а есть специфические. И любая специфика накладывает свои нюансы, которые _следует_ учитывать.

AK> Для этого есть стандарт.

Радуйся. Я предпочитаю внятные стандарты, а не кашу из "всё возможно, сами разбирайтесь..."

Георгий

Vasiliy, ты ещё здесь сидишь?

Вторник Hоябрь 29 2005 22:38, Vasiliy Andreev wrote to George Shepelev:

GS>> Кроме "пионэров" есть ещё люди, пишущие отладочный софт. Который GS>> на кривых реализациях работать не будет... VA> самый что "классический" проц времен "становления" форта - i8080, VA> имел возможность работать с двумя адресными пространствами,

Правда? А почему не с тремя? ;-)

VA> так как системный контроллер (забыл точно какой, i8038 ???) имел бит VA> "обращение к стеку",

Любители поизвращаться ещё навешивали звук на ножку, отслеживающую разрешение/запрет прерываний. Подобные вещи - именно извращения!..

VA> и были реализации систем с стеком в отдельных 64К озу.

Зачем? Трудности с отладкой представляю, преимущества - весьма сомнительны.

VA> кстати, весьма красивое (на мой взгляд) решение.

А на мой - извращение. Кстати, не прижившееся, и это правильно...

Георгий

Thu Dec 01 2005 00:44, George Shepelev wrote to Alex Kouznetsov:

GS> Гляди к примеру Л.Броуди, "Hачальный курс программирования GS> на языке Форт". Глава "Пользовательские переменные" - картинка с GS> распределением памяти форт-системы.

Угу. Значит, по-твоему, если память распределена не как на этой картинке - это уже и не форт? Какой бред...

Сам Броуди пишет так: "Вы видите на рисунке карту памяти типичной Форт-системы" - добавлю, довольно типичной во времена написания книги. Но даже тогда не единственно возможной! По поводу использования SP@ - "но в большинстве случаев это не может считаться хорошим стилем программирования"

Кстати, у него там стеки растут в одном направлении, и заведены в по отдельности для каждой задачи. Tо есть, реализация _очень_ плохая, "пионэрская". А ты на нее молишься :(

AK>> Для этого есть стандарт.

GS> Радуйся. Я предпочитаю внятные стандарты

Да, к сожалению, картинок в ANS94 нет, и изложено сухо, для специалистов. Сочувствую.

Пока, Алексей

Hello, George Shepelev! You wrote in conference fido7.ru.embedded to Vasiliy Andreev on Thu, 01 Dec 2005 01:46:49

+0300:

GS> Vasiliy, ты ещё здесь сидишь?

GS> Вторник Hоябрь 29 2005 22:38, Vasiliy Andreev wrote to George GS> Shepelev:

GS>>> Кроме "пионэров" есть ещё люди, пишущие отладочный софт. GS>>> Который на кривых реализациях работать не будет... VA>> самый что "классический" проц времен "становления" форта - VA>> i8080, имел возможность работать с двумя адресными VA>> пространствами,

GS> Правда? А почему не с тремя? ;-)

Потому что с четырмя. Код, данные, стек, ввод-вывод. dima

formatting link

Thu Dec 01 2005 00:46, George Shepelev wrote to Vasiliy Andreev:

VA>> и были реализации систем с стеком в отдельных 64К озу.

GS> Зачем? Трудности с отладкой представляю, преимущества - весьма GS> сомнительны.

Хотя бы затем, чтобы переполнение стеков не "стреляло" по памяти.

Пока Алексей

Очень рад вас видеть, George!

GS>>> Кроме "пионэров" есть ещё люди, пишущие отладочный софт. Который GS>>> на кривых реализациях работать не будет... VA>> самый что "классический" проц времен "становления" форта - i8080, VA>> имел возможность работать с двумя адресными пространствами,

GS> Правда? А почему не с тремя? ;-) почему - написано ниже. учите матчасть!

VA>> так как системный контроллер (забыл точно какой, i8038 ???) имел бит VA>> "обращение к стеку",

GS> Любители поизвращаться ещё навешивали звук на ножку, отслеживающую GS> разрешение/запрет прерываний. Подобные вещи - именно извращения!.. про звук согласен, а про стек - нет. интел это как вариант использования предлагал... в талмуде аппнотовом, я его в виде ксерокопий давным-давно читал. по поводу звука - разработчики пдп-8 цепляя динамик на шину, по звуку определяли что машина делает. это в воспоминаниях одного из их команды было.

VA>> и были реализации систем с стеком в отдельных 64К озу.

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

VA>> кстати, весьма красивое (на мой взгляд) решение.

GS> А на мой - извращение. Кстати, не прижившееся, и это правильно... а много ли систем на 8080 Вы видели? (рк86 и прочие кустарные самоделки не рассматриваются). без заметной выборки это утверждение голословно!

AVL

Alex, ты ещё здесь сидишь?

Четверг Декабрь 01 2005 07:33, Alex Kouznetsov wrote to George Shepelev:

GS>> Гляди к примеру Л.Броуди, "Hачальный курс программирования GS>> на языке Форт". Глава "Пользовательские переменные" - картинка с GS>> распределением памяти форт-системы. AK> Угу. Значит, по-твоему, если память распределена не как на этой AK> картинке - это уже и не форт? Какой бред...

Опять передёргиваешь! Речь с самого начала шла о том, что есть классические реализации форт-системы, а есть специфические. Остальное - твои домыслы.

Георгий

Dmitry, ты ещё здесь сидишь?

Четверг Декабрь 01 2005 09:47, Dmitry Orlov wrote to George Shepelev:

GS>>>> Кроме "пионэров" есть ещё люди, пишущие отладочный софт. GS>>>> Который на кривых реализациях работать не будет... VA>>> самый что "классический" проц времен "становления" форта - VA>>> i8080, имел возможность работать с двумя адресными VA>>> пространствами, GS>> Правда? А почему не с тремя? ;-) DO> Потому что с четырмя. Код, данные, стек, ввод-вывод.

И давно у 8080 независимые адресные пространства кода и данных? ;)

Георгий

Alex, ты ещё здесь сидишь?

Четверг Декабрь 01 2005 11:43, Alex Kouznetsov wrote to George Shepelev:

VA>>> и были реализации систем с стеком в отдельных 64К озу. GS>> Зачем? Трудности с отладкой представляю, преимущества - весьма GS>> сомнительны. AK> Хотя бы затем, чтобы переполнение стеков не "стреляло" по памяти.

Маскировка глюков - отнюдь не лучший вариант реализации системы. Кстати, что собираешься делать со "стрелянием" по памяти стека данных?

Георгий

Vasiliy, ты ещё здесь сидишь?

Четверг Декабрь 01 2005 14:08, Vasiliy Andreev wrote to George Shepelev:

GS>>>> Кроме "пионэров" есть ещё люди, пишущие отладочный софт. GS>>>> Который на кривых реализациях работать не будет... VA>>> самый что "классический" проц времен "становления" форта - VA>>> i8080, имел возможность работать с двумя адресными VA>>> пространствами, GS>> Правда? А почему не с тремя? ;-) VA> почему - написано ниже. учите матчасть!

Да я-то как раз хорошо знаю матчасть, потому и вопрос задал ;)))

VA>>> так как системный контроллер (забыл точно какой, i8038 ???) имел VA>>> бит "обращение к стеку", GS>> Любители поизвращаться ещё навешивали звук на ножку, GS>> отслеживающую разрешение/запрет прерываний. Подобные вещи - GS>> именно извращения!.. VA> про звук согласен, а про стек - нет.

Один изврат другого стоит.

VA> интел это как вариант использования предлагал...

Hе прижилось, ибо изврат. А вот отдельное адресное пространство портов ввода-вывода используется до сих пор (начиная с эхотажных однокристаллок и заканчивая процессорами в персоналках)...

VA>>> и были реализации систем с стеком в отдельных 64К озу. GS>> Зачем? Трудности с отладкой представляю, преимущества - весьма GS>> сомнительны. VA> трудности - а какие?

В отладке, например.

VA> все было решаемо... а преимущества - они были, 64к даже тогда не VA> казались "бескрайними"

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

VA>>> кстати, весьма красивое (на мой взгляд) решение. GS>> А на мой - извращение. Кстати, не прижившееся, и это GS>> правильно... VA> а много ли систем на 8080 Вы видели?

Увы, да. Hамучался с разнообразными поделками на базе этой кривульки (бытовые компы, принтеры, коммуникационные платы...). Hасколько всё проще делалось на Z80...

Георгий

Fri Dec 02 2005 15:13, George Shepelev wrote to Alex Kouznetsov:

AK>> Значит, по-твоему, если память распределена не как на этой AK>> картинке - это уже и не форт?

GS> Речь с самого начала шла о том, что есть классические реализации GS> форт-системы, а есть специфические.

Не путайся в терминах. Ты называешь "классическими" дидактические форт системы, то есть имеющие узко специфическое применение. Среди прочих, которые ты отнес к "специфическим", есть действительно классические, такие как SPF, SwiftForth, VFX Forth.

Пока Алексей

Fri Dec 02 2005 15:14, George Shepelev wrote to Alex Kouznetsov:

VA>>>> и были реализации систем с стеком в отдельных 64К озу. GS>>> Зачем? Трудности с отладкой представляю, преимущества - весьма GS>>> сомнительны. AK>> Хотя бы затем, чтобы переполнение стеков не "стреляло" по памяти.

GS> Маскировка глюков - отнюдь не лучший вариант реализации системы.

При этом система хотя бы сохранит работоспособность, а не грохнется. Выявить глюк - это отдельная и решаемая задача.

Пока Алексей

Hello, George Shepelev! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 02 Dec 2005 16:14:00

+0300:

GS>>>>> Кроме "пионэров" есть ещё люди, пишущие отладочный софт. GS>>>>> Который на кривых реализациях работать не будет... VA>>>> самый что "классический" проц времен "становления" форта - VA>>>> i8080, имел возможность работать с двумя адресными VA>>>> пространствами, GS>>> Правда? А почему не с тремя? ;-) DO>> Потому что с четырмя. Код, данные, стек, ввод-вывод.

GS> И давно у 8080 независимые адресные пространства кода и GS> данных? ;)

Да, ошибся. Таки три, а не четыре.

dima

formatting link

3.5 таки - сигнал M1 вспомним.

Alex, ты ещё здесь сидишь?

Суббота Декабрь 03 2005 07:54, Alex Kouznetsov wrote to George Shepelev:

AK>>> Значит, по-твоему, если память распределена не как на этой AK>>> картинке - это уже и не форт? GS>> Речь с самого начала шла о том, что есть классические реализации GS>> форт-системы, а есть специфические. AK> Hе путайся в терминах. Ты называешь "классическими" дидактические форт AK> системы, то есть имеющие узко специфическое применение.

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

Георгий

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required