Tue Oct 14 2003 22:01, Roman Khvatov wrote to Ilia Tarasov:
IT>>>> О чем говорит JC или JNZ? RK>>> О наличии в АЛУ таких флагов :) IT>> Где эти флаги в Си как элементы языка?
RK> А где в С АЛУ как элемент языка?
О чем я тебе и говорил! Ни флагов, ни АЛУ, ни регистров! Однако при рассмотрении процесса компиляции все это вдруг всплывает...
RK> Ага, имеем 1 команду, которая может быть использована для выполнения RK> _любого_ условного перехода. (Точнее имеем комбинацию из 2х команд, RK> первая выполняет какое нибудь арифметическое действие, вторая выполняет RK> переход - результат первой команды тоже может понадобится)
Вот как раз _любой_ переход с минимальным набором команд и не нужен...
RK> Язык не обязан ложиться на целевую платформу 1 в 1 (и даже будет лучше, RK> если он не будет так ложиться - больше простора для маневра компилятору)
С чего бы??????!!!!!! Какой такой маневр компилятора, если все его "маневры" делаются не от хорошей жизни? Именно соответствие 1 в 1 команд процессора (а лучше КА) диаграмме состояний, заданной в ТЗ, и является идеальным с точки зрения алгоритмики решением поставленной задачи!
RK> Кроме того, если делать JA_EQ_B, то придется сделать целый выводок таких RK> команд для всех условий и всех регистров, сам посчитаешь, сколько их RK> будет :)
Ну наконец-то....
RK> Для стековой машины имеет смасл вводить операции JEQ/JNE/etc. - RK> там операнды находятся в одном месте и можно сэкономить на команде RK> сравнения.
Для стековой машины достаточно ввести операции над вершиной стека. Для Форт-машины - переход по проверке вершины на 0...
IT>> Обоснуй, почему хуже. С точки зрения схемотехники принципиальной IT>> разницы нет.
RK> Есть, если делать одной командой, то придется задействовать RK> _последовательно_ АЛУ и логику переходов, что потребует усложнения схемы RK> или введение микропрограм.
АЛУ в данном случае и есть логика переходов... Разницы нет (по наблюдениям за готовым проектом).
IT>>>> Все, что кому-нибудь нужно, рано или поздно может появиться. RK>>> Оно уже появилось, теперь отмирает :) IT>> Это твое мнение, или объективные исследования?
RK> Можешь собрать статистику например по этой эхе - здесь периодически RK> вспыхивают войны асм/C, причем со обычно воюют один или два человека RK> (сторонники асма) со всей остальной эхой :)
Статистика по эхе мне мало интересна. Я отсюда могу "забрать" только результаты обсуждений или технические советы от людей, тесно работавших с неким оборудованием. То, что xx% работают с Си, мало о чем говорит, даже если xx много больше 50...
IT>> Joy подсказали - а я совсем забыл, и зря.... Орлов вон и про Ocaml IT>> ничего не слышал, но о чем это говорит?
RK> О том, что они практически никому не известны, если не веришь - можешь RK> провести опрос, прямо здесь :)
Известны - не известны.... разве об этом речь? Разработка состоялась, кто не спряталс.... эээ... кто не сообразил как воспользоваться - я не виноват...
IT>>>> Си, Паскаль, Алгол, Фортран - разные языки? RK>>> Да. Программа на С не будет компилироваться Паскалем и т.д. IT>> Они сопоставимы на уровне грамматики,
RK> Это как это? То, что грамматики у них похожи, это еще не значит, что они RK> одинаковы.
Не придирайся. Они _сопоставимы_. Если угодно, программу на Паскале можно переписать на Си.
IT>> а ты описываешь эффект от применения конкретных реализаций IT>> компиляторов.
RK> Ээ, Паскаль и С это 2 реализации одного компилятора? Это откровение :)
а) "конкретных реализаций компиляторОВ" б) сильное подозрение, что дело обстоит таки довольно близко к тому, над чем ты тут улыбаешься.... ;)
(skipped то, что все равно не приведет к реальным результатам... ты компиляторы пишешь? тебе этот анализ нужен для конкретной работы, или просто "почему не стековая архитектура"?)
RK>>> Можно дать более точное определение: RK>>> Языки можно считать диалектами друг друга, если найдется RK>>> осмысленная программа, не содержащая коментариев, которая будет RK>>> компилится обоими языками и давать в результате своей работы RK>>> идентичные результаты.
IT>> :-/ Hичего себе определение.
RK> Вполне нормальное.
Для интереса - приведи парочку определений диалекта из соотв. литературы..
IT>> Применяем его к .net и видим, что ВСЕ эти языки (C++ C# VB и т.д.) - IT>> диалекты друг друга. IT>> Про фазы компиляции в определении ни слова....
RK> Причем тут фазы компиляции, я же явно написал _программа_, то есть RK> исходный текст.
И никаким препроцессором один исходный текст не превратить в другой? А то, что некоторые компиляторы умеют "смешивать" языки в исходных текстах? Неет... это ты не то написал...
IT>> (А .net использует единый промежуточный формат)
RK> А что, на всех этих языках пишут сразу на промежуточном формате? Или все RK> же на собственно языке?
"Собственно языка" там практически нет. Начиная с определенной _фазы_ (о которой вообще ни слова) компилятор работает с единым представлением кода. Соответственно, .net умеет компилировать все языки, которые способны после определенной обработки выдать это самое представление.
IT>> Ты передергиваешь - я привел тебе _все_ варианты, в том числе и с IT>> умножением частоты. А триггер позволит записать в него по фронту, а IT>> затем асинхронно читать в любое количество выходов.
RK> Это тоже разновидность умножения частоты.
Ничего подобного! Не путай асихронные и синхронные схемы!
RK> Я ожидал красивого решения, RK> например разделение памяти на 2 банка и подключения АЛУ так, что бы можно RK> было читать операнды и записывать результат так, что бы к любому банку
:))))))) а) это наиболее оптимальное из используемых решений б) про это я уже писал... ты просто не увидел :))))
RK>>> Hикто не мешает дописать своих управляющих слов с использованием RK>>> того же control-flow стека и непреднамеренно разрушить весь RK>>> контроль в результате ошибки.
IT>> Ээээ.... а что, кто-то говорил, что Форт - панацея? Hадо думать, что IT>> делаешь.
RK> Бывают же и просто ошибки.
И кто в таким случае их сделал?
IT>> Hа Си тоже можно написать бесконечный цикл и войти в него с IT>> запрещенными прерываниями...
RK> Да, но поломать компилятор это не сможет :)
То, что поломает отвертку, не поломает молоток... Форт и Си - языки совершенно разных классов, и подобные сравнения вряд ли полезны...
IT>> Для такого подхода лучше взять язык с более простым синтаксисом.
RK> У Форта _очень_ простой синтаксис.
Соответственно, он может быть спрятан в качестве ассемблера с последующей надстройкой над ним серии ЯВУ... (Десятый раз тут уже повторяю)
IT>> Композицию уже отменили? RK> Она все равно снижает надежность.
???????? 8-| С чего?????