Здравствуйте!
Хотелось бы знать, как народ отнесся бы к появлению проекта по созданию Руccкой
ОС. Причём не только русской, но и всего русскоговорящего населения?
Присоеденились бы вы к такому проекту?
Прошу не относить к флейму. Речь идёт о уже существующем проекте.
С уважением,
VICH
Всего в теме 5452 сообщения
Отслеживать это обсуждение
№ 2992 25-10-2007 18:51 | |
Ответ на »сообщение 2991« (Илья Ермаков)
___________________________
Если решением некоторой сложной системы уравнений являются точки в пространстве, мы же не утверждаем, что язык уравнений является полностью эквивалентным нотации записи координат точки: (x1, x2, x3, ...).
Не утверждаем...
Задача и решение и не собирались быть эквивалентными.
Давайте рассмотрим всю "технологическую" цепочку.
1. Есть проблема, которая озвучена на естественном языке.
2. Проблема формулируется на естественном языке.
3. Проблема формализуется и превращается в задачу.
4. Для задачи находится или создается метод решения.
5. На основе метода разрабатыается алгоритм (вообще говоря в виде спецификации).
6. На основе алгоритма разрабатывается программа на ЯВУ
7. Программа транслируется в язык команд компьютера.
8. Получаем результат.
--------
9. Интерпретируем результат в терминах решения задачи.
10. Интерпретируем решение задачи для решения проблемы.
Это очень сокращенно-упрощенно, но надеюсь суть ясна: по мере формализации мы абстрагируемся от семантики, но не теряем ее, т.к. за получением результата следует процесс его интерпретации, возвращающий нас к семантике проблемы.
На этапе ЯВУ от семантики проблемы практически ничего не осталось - как именно названы переменнве и даже как организованы структуры данных имеет мало отношения к исходной проблеме. ЯВУ-та граница, за которой идут чисто формальные преобразования.
Тут, видимо, та же проблема, что и с спецификациями. Иногда удобно выполнять первые 6 этапов зацело, прямо на ЯВУ, если задача обозрима для одного человека. Но это не значит, что ЯВУ для этого предназначены.
№ 2991 25-10-2007 14:16 | |
Ответ на »сообщение 2988« (Сергей Перовский)
___________________________
Ответ на »сообщение 2987« (Илья Ермаков)
___________________________
С тех пор я твердо запомнил, что конструкция ЯВУ есть всего навсего стандартный блок из команд более низкого уровня.
А декларативная конструкция, описание? Куда она девается? Используется при генерации этих команд более низкого уровня, и испаряется. Всё, нет её, не восстановишь.
Если решением некоторой сложной системы уравнений являются точки в пространстве, мы же не утверждаем, что язык уравнений является полностью эквивалентным нотации записи координат точки: (x1, x2, x3, ...). И никто не будет опровергать, что система уравнений позволяет выразить то, что принципиально невыразимо с помощью записи наборов чисел, взятых в скобочки. И однозначно восстановить по этому набору точек систему уравнений, т.е. семантику задачи, невозможно. Потому что потеряна эта семантика.
№ 2990 25-10-2007 14:09 | |
Ответ на »сообщение 2989« (Geniepro)
___________________________
Ответ на »сообщение 2986« (Илья Ермаков)
___________________________
Можно построить формальный преобразователь для распараллеливания ассмеблерного кода с некоторым конкретным коэффициентом эффективности? Нет.
Почему же нет? Современные суперскалярные процессоры этим занимаются.
Раз этот преобразователь у них выполнен в кремнии, значит перед этим он был построен формально...
Я этот пример держал в голове, когда уточнил "с некоторым заданным коэффициентом". Обеспечить конвейеризацию ещё можно, а вот нагрузить оба ядра - уже нет :-)
№ 2989 25-10-2007 13:09 | |
Ответ на »сообщение 2986« (Илья Ермаков)
___________________________
Можно построить формальный преобразователь для распараллеливания ассмеблерного кода с некоторым конкретным коэффициентом эффективности? Нет.
Почему же нет? Современные суперскалярные процессоры этим занимаются.
Раз этот преобразователь у них выполнен в кремнии, значит перед этим он был построен формально...
№ 2988 25-10-2007 12:48 | |
Ответ на »сообщение 2987« (Илья Ермаков)
___________________________
Не читать проще, а можно выражать такую семантику, которой на более низком уровне выразить нельзя (можно только сымитировать её прагматику).
Вспомнил один из первых трансляторов фортрана. Каждый оператор транслировался в вызов процедуры ассемблера. Даже пустой оператор CONTINUE :)
С тех пор я твердо запомнил, что конструкция ЯВУ есть всего навсего стандартный блок из команд более низкого уровня.
Программа на ЯВУ более обозрима, более понятна и т.д. но ПРИНЦИПИАЛЬНЫХ отличий нет. Стэн говорит простую и понятную вещь: если для всех возможных наборов данных две программы выдают одинаковые результаты, то они математически эквивалентны. Для любой программы на ЯВУ можно создать эквивалентную на более низкоуровневом языке. Обратное, вообще говоря, неверно.
№ 2987 25-10-2007 12:32 | |
Ответ на »сообщение 2985« (Стэн)
___________________________
Ответ на »сообщение 2984« (Илья Ермаков)
Понятно, что читать проще, для этого все и делается и никто с этим не спорит. Но причем тут человек?
Не читать проще, а можно выражать такую семантику, которой на более низком уровне выразить нельзя (можно только сымитировать её прагматику).
№ 2986 25-10-2007 12:30 | |
Ответ на »сообщение 2985« (Стэн)
___________________________
Ответ на »сообщение 2984« (Илья Ермаков)
___________________________
>>> Если программа на одном языке (ASM) не может обладать теми же качествами, что программа на другом (ЯВУ), то это значит, что второй язык позволяет выражать то, что первый не позволяет.
Какими качествами? При условии, что речь идет о том, что ни какой ЯВУ в вычислительном плане не может добавить ничего, что может предложить ASM (точнее, "язык более низкого уровня").
Нет, о том и речь, что Вы ведёте речь исключительно про "вычислительный план". А речь не про него.
Понятно, что читать проще, для этого все и делается и никто с этим не спорит. Но причем тут человек? Вопрос был поставлен в математической форме - можно ли, или нельзя - формально?! Может ли при этом Вася Пупкин написать, или нет - не имеет значения.
Возьмём не человека, а некоторый формальный преоборазователь.
Можно построить формальный преобразователь для распараллеливания ассмеблерного кода с некоторым конкретным коэффициентом эффективности? Нет. Можно построить его для программы на ЯВУ? Смотря на каком, конечно, но достижимый коэффициент все равно будет гораздо выше.
По отношению к метаязыку субязык является объектом обработки. Поэтому этот самый субязык и нужно рассматривать с точки зрения семантики для обработки, а не вычислительной семантики.
№ 2985 25-10-2007 12:20 | |
Ответ на »сообщение 2984« (Илья Ермаков)
___________________________
>>> Программа - это техническая система. Объективно существующая независимо от факта своего конкретного запуска на конкретном компьютере.
Ну это уже круто!
Вот конкретно это выражение не даст вам ни какого результата, сколько бы Вы на него не смотрели:
X := 2 + 3;
Точно так же, как и чертеж экскаватора не выкопает ни одной ямы...
>>> Если программа на одном языке (ASM) не может обладать теми же качествами, что программа на другом (ЯВУ), то это значит, что второй язык позволяет выражать то, что первый не позволяет.
Какими качествами? При условии, что речь идет о том, что ни какой ЯВУ в вычислительном плане не может добавить ничего, что может предложить ASM (точнее, "язык более низкого уровня").
>>> Неужели не понятно, что как система, "чертёж", доступный для развития и обработки человеком, программа на ASM не может в принципе обладать теми же качествами, что и на ЯВУ?
Понятно, что читать проще, для этого все и делается и никто с этим не спорит. Но причем тут человек? Вопрос был поставлен в математической форме - можно ли, или нельзя - формально?! Может ли при этом Вася Пупкин написать, или нет - не имеет значения.
№ 2984 25-10-2007 12:07 | |
Ответ на »сообщение 2982« (Стэн)
___________________________
Ответ на »сообщение 2978« (Илья Ермаков)
___________________________
Давайте так: есть программа, написанная на ЯВУ, обрабатывающая "сложные" структуры данных, которая может быть скомпилированна и выполнена. Вы утверждаете, что на ASM принципиально нельзя написать программу, которая для этих же входных данных дает точно такой же результат, как и программа на ЯВУ?
Программа - это техническая система. Объективно существующая независимо от факта своего конкретного запуска на конкретном компьютере.
Если программа на одном языке (ASM) не может обладать теми же качествами, что программа на другом (ЯВУ), то это значит, что второй язык позволяет выражать то, что первый не позволяет.
Неужели не понятно, что как система, "чертёж", доступный для развития и обработки человеком, программа на ASM не может в принципе обладать теми же качествами, что и на ЯВУ?
№ 2983 25-10-2007 11:43 | |
Ответ на »сообщение 2979« (Илья Ермаков)
___________________________
>>> Точно так же, как из топологии кристалла процессора Вы никогда не сможете получить обратно высокоуровневое описание его логики.
Может быть и не смогу, но процессор-то не станет от этого работать по-другому.
>>> Потому что она была необратимо отлита в физическую схему, которая выполняет эту логику, но уже не содержит информации о том, зачем и почему.
Ни одна программа не содержит полной информации зачем и почему. Даже если комментарии написаны... Где комментарии для комментариев?
Отслеживать это обсуждение
Дополнительная навигация: |
|