Здравствуйте. Я бы хотел узнать слышал-ли кто-то о таком универсальном языке программирования как оберон. Если нет наберите в яндексе и посмотрите. Если да, буду очень признателен за ваши мысли по этой теме, если конечно они есть. Если вам самим порыться лень даю сразу ссылки: Промывка мозгов сдесь: http://www.inr.ac.ru/~info21/ Русская страничка про Оберон: http://www.uni-vologda.ac.ru/oberon/index.html
Мда... А еще войнами дзена себя называют. Хотя конечно может это не дзенская тема, незнаю, я новичек на этом сайте. Ну а так как мне ещё никто до сих пор не ответил, то я попробую ответить сам себе. 1. Язык Паскаль был разработан в 1970г. Никлаусом Виртом. Между прочим професор и по сей день жив, здоров и вроде бы в здравом уме и твердой памяти. Можно предположить, что за прошедшее с 1970 годы он не сидел сложа руки, а продолжал работать над языками программирования и приближаля к познанию сущьности дзена. Последняя его разработка - oberon 2, 1994г. Компилляторов, операционных систем и компутеров которые он сам разрабатывал, я не видел но по слухам это редкое убожестово. Но язык! Я читал спецификацию, литературу других авторов для промывки мозгов и должен признать язык мне нравится. А паскаль можно судя по вышесказанному считать устаревшим языком и устаревшем уже давно. 2. SDE. Промежуточный код. Ява тут ни причем, ибо когда Михаэль Франц делал свой доклад в 1994, никакой джавы еще небыло. Суть использвания SDE такая же как у современной джавы - кросплатформенность, разница в реализации. Так вот, этот промежуточный код позволяет сохранять алгоритмическу информацию из исходника, так что можно наверное по промежуточному коду восстановить сам исходник, но еще важне что программы в SDE занимают места в два и более раза меньше чем код для CISC процессора, зачем это - чуть позже. Вы компилирете свою прогу на высокоуровневом языке в SDE представление. А когда нужно эту прогу выполнить, кодогенератор, разработанный для конкретной платформы и если угодно процессора, переводит программу из промежуточного кода в машинный. И так как промежуточный код содержит всю инфу об алгоритме, то можно написать очень хороший оптимизирующий кодогенератор для конкретной архитектуры. Но это еше не все. Суть технологии не в том, чтобы проги компиллировать как например в .NET мистера Баала а в том, чтобы их как есть в промежуточном коде выполнять. Вы скажете что программы таким образом будут черт те знает сколько загружаться, и все будет тормозное как в жабе? Ан нет автор реализовал свою задумку и провел тесты. Программы в SDE выполнялись всего-то процентов на 10-50 медленне чем, в машинном коде. За счет того, что программы в представлении SDE, в разы меньше чем бинарники,прочитаются они с диска быстрее, что и компенсирует всемя потраченное на декодирование, ведь чтение с диска идет в сотни раз медленне чем чтение из оперативки, а скорость процессоров растет куда бысрее чем скорость чтения винчестеров. Но вопрос в том, что в универе Франца, тогда, в 1994г. стояли маки с 25-40мгц процем, я думаю если повторить то что он делал на современных процессорах то программы в этом самом промежуточном коде будут выполняться чуть ли не быстрее чем бинарники. Вот собственно это меня и интересует, почему я и прошу поделиться мыслями с дзенствующими мастерами этого форума и мне очень жаль что мыслей-то ни у коги и нет.
всего-то процентов на 10-50 медленне чем, в машинном коде И правда. Всего-то в два раза медленне. Фи.
Не получится. Если сравнивать на одном процессоре (x86). Что быстрее, выполнение кода или декодирование SDE и выполнение? Об этом уже шла речь, когда сравнивали скорости выполнения байт-кода JAVA, а позже и CLR. И при чём тут скорость чтения винчестеров? PE32 занимают пока ещё не сотни мегабайт, чтобы ощутить время загрузки их с диска…
Что-то я не пойму, сами Oberon microsystems вроде как уже от Оберона отказались. SDE в их последнем (?) компиляторе (BlackBox) не пахнет, всё компилиреутся в native (IMHO весьма посредственного качества), хотя вроде бы есть и компиляторы под .NET Сами же их идеи, конечно, отличные - доказательством этому служит то, что их передирают все кому не лень (COM, java, .NET, ...) Вот только странно - остальные реализации уж очень монстроузные, а почему-то пользуются спросом, в отличае от Component Pascal. Почему? IMHO причина проста - С это промышленный стандарт (отсюда и "успех" Си-подобных языков). А что такое Паскаль? > Наверное лучше сказать так: машинный код был такого качества, что выполнялся на 15% быстрее, чем SDE. > Ну дык и бинарник бинарнику рознь. Тот же BCC32 сравнить с intel C compiler Или с оптимизированным в ручную кодом... ЗЫ Вот над этим я смеялся от души: With best regards Foo Bar
Вот здорово! Только попробовал сам себе ответить на собственный же вопрос как со мной сразу начали спорить. Приму тактику на вооружение. Так как литературу я читаю обычно с конца, то сначала хочется ответить S_T_A_S_'у: >"With best regards Foo Bar" Я пока с аглицким еще не очень дружу. Если "Foo Bar" еще куда ни шло, то что значит "With best regards" я так и не накумекал. Переведи пожалуйста. А вообще такие ответы, да еще самому себе писать, можно и ляпнуть что-нибудь не то. Тем более я же упоминал, что я новичек. Hello World на васике написал! >"Что-то я не пойму, сами Oberon microsystems вроде как уже от Оберона отказались" Да я и сам не пойму как это Oberon microsystems может отказаться от оберона. Ну тогда это уже не Oberon microsystems. Я проверю. >"SDE в BlackBox не пахнет" Понухал, действительно не пахнет. Я и не говорил, что он там должен быть. SDE к BlackBox'у можно отнести постольу поскольку (Михаэль Франц реализовывал свой проект на обероне и работал вместе с Виртом когда-то, который этот самый оберон по большей части придумал, ну а потом ученики Вирта основали компанию, внесли изменения в оберон2(которые можно перещитать на пальцах одной руки), назвали то что получилось Component Pascal, сделали cреду программирования BlackBox, потом как-то заманили к себе учителя, который в конце концов свою подпись под Componet Pascal таки не поставил). По поводу BlackBox выражусь отдельно. Я, как наверное и все простые смертные, не познавшие просветления, привык учиться методом тыка. И даже не научного(логического), а скорее случайного. Мне кажется название черный ящик для этого продукта придумано ну очень удачно. Ибо работать с ним после написания Hello World на очевидном васике, это все равно что искать черную кошку в черной комнате ночью при выключенном свете. Ни единой пиктограмки. Из картинок - почни одни таблицы. Визуально обределить что здесь к чему - ну наверное это не моего IQ дело. По поводу их словесных попыток проталкивания своего компонентного программирования на рынок - ну мне лично хотелось бы купить целую машину, чем запчасти к ней. Да и просто в выборе названия ком.пас. я с этой компанией не солидарен, как-то странно видеть в названии нового продукта устаревшую технологию. Вот поэтому я везде и упоминаяю оберон. А в теме ком.пас. написал только по тому, что если ввести в яндексе только оберон или SDE то вылезают ссылки на какое-то медицинское оборудование и еще какую-то хрень. Ну насчет именно промышленного стандарта позволю иметь наглость несогласиться. В некоторых областях(авиастроение, авиакостимеская промышленность) язык C законодательно запрещен к использованию. Не помню точно C-просто или C- c плюсами. Вобщим оно и не удивительно - язык сложен даже не столько для понимая, сколько для написания 100% надежного компиллятора. Мне бы было не очень приятно лететь на самолете, програмное обеспечение которого надежно на 99%, не знаю как остальным. Наоборот в сферах от которых напрямую зависят человеческие жизни используются как раз проВиртовские языки. Теперь IceStudent: Тридэмакс5 в из моих 128 метров оперативки откусывает 80, остальное наверное свопит. Ну это еще так, фигня. Недавно взял какую-то игрушку Enter Matrix, или как то так называется - при установке пишет, что ей треба не менее трех гигабайт на винчестере, сколько ей нужно оперативки на коробке не указывалось, да и не важно, я все равно пожлопился на 3 гига. И я говорил, SDE и байт код джава это две совершенно разные реализации одной идеи, так что вряд ли будет полезно сравнение джави и SDE И наконец Volodya: Ну допустим даже два раза. Я слышал что из байт кода джавы удалось выжать целых 25% от скорости бинарника. На русском есть только половина доклада. Из второй половины доклада, насколько я понял два раза будет на Macintosh II (16MHz MC68020)На Quadra 840AV(40MHz MC68040) - уже 16%. Но лучше будет самому найти доклад и посмотреть. Весит 300kb в PDF. Или я могу выслать на почту, потом. А то в Иркутске уже утро наступило пока я это все писал и я хочу спать. А вообще не примите меня за еще оного ворчуна, просто хотелось поговорить и спасибо всем за ваши ответы.
Dimaska > Тем более я же упоминал, что я новичек. Hello World на васике написал! Вот и продолжай писать на нём дальше, или переходи на асм, который, как я подозреваю, как раз и применяется для ответственной техники. Уж лучше VB чем какие-то мёртвые языки
Уважаемый Asterix, меня если чесно асм сам по себе не очень возбуждает (извините, ересь конечно такое на этом священном форуме говорить).Но тем не менее. Асм меня интересует как средство написания компиллятора, ну и конечно в тех областях где без него не обойтись. А по поводу ответственной техники: мне кажется что правильнее будет - критической к размеру кода и (или) быстродействию программы.
Я долько сейчас почита требования к статьям. Да, а тему я завел и в самом деле не дзенскую. Уже понятно почему пришлось на нее самому отвечать. Остается только перерезать себе вены
Dimaska > Я тоже, т.к. никогда его не учил. Поэтому пользуюсь словарём > Это напоминает "плохому танцору что-то мешает". IMHO реализовать синтаксический анализ намного проще, чем качественный кодогенератор. А если развить ту логику - проще всего писать в двоичном коде - всего-то нужно выучить 2 цыфры . > Дык был же не так давно случай - куча самолётов не могла приземлиться т.к. в виндосе на серваке был баг - переполнение DWORD счётчика какого-то Говорят, пока использовался *nix такого не было. А nix'ы как известно на паскале писаны, в отличае от виндоса )))) > Ну дык это всё данные занимают, а не код. Код для 3D аркады можно уместить в 96 Kb exe'шник, как продемонстрировали ребята (откуда не помню, т.к. стёр ту игруху - тормозила жутко :-() > Обычно средствами для этого служат другие языки, а асм является конечной целью, т.к. многие "компиляторы" выдают не готовый код, а всего лишь исходник для FASM/GAS/MASM/ Что мне кажется весьма странным, после того как я прочитал слова Randall Hyde, что перевод ассемблерных мнемоник в маш.код - это всего-то 5% работы компилятора . Asterix > Гы, да он бы умер давно, если бы не "моральная поддержка" сами знаете кого
S_T_A_S_: Так и я тоже словарем пользуюсь, на проблема в том что переводить сленговые выражения с его помощью не так-то и просто. Я ведь чуть выше хотел сказать, что тему завел неудачную, не в том месте и не в то время. Так что я просто попробую сделать по своему. >" IMHO реализовать синтаксический анализ намного проще" Ну нет, IMHO я так не думаю. Реализовывать все что только можно в одном флаконе, да еще поддерживать совместимость с тем что было - это по человечески сложно. Потом вылазят всякие исключения из правил, особенные случаи, все это надо оговаривать отдельно... >"А если развить ту логику - проще всего писать в двоичном коде" Непонял зачем. Нет, все конструкции в обероне предназначены для того чтобы приблизить язык программирования к естественному языку, собственно чтобы программирование было выражением своих мыслей на английском языке. >"Обычно средствами для этого служат другие языки, а асм является конечной целью" Да так писать копиллятор на высокоуровневом языке куда проще чем на чистом асме. Пример конечно только для наглядности: IF vstretilos="а=b+c" THEN mov eax,a add eax,b mov c,eax END Все что ты говоришь так и есть. Сначала компиллятор пройдется по всему исходнику, чтобы отловить всречающиеся переменные(если в языке не строгой типизации) и выделит под них память. Потом пройдется еще раз, разберет как это можно записать вложенные циклы, условные переходы и другие конструкции языка в че-нибудь попроще, например промежуточный код, потом пройдется по промежуточному коду оптимизирует его. И наконец переведет то что получилось в асм.(или чтоб не мучиться еще одной стадией - сразу в машинный код). >"Гы, да он бы умер давно..." Да уж, мистер Ваал даже признавался ему в любви...
Забыл всех поблагодарить за то что имели любезность мне ответить на мою ересь в этом текстовом храме дзена. С уважением, Dimaska.
Dimaska > У меня Lingvo 8.0 всё прекрасно переводит, а online версия вроде как на базе 10й версии сделана foo "нечто" ( метасинтаксическая переменная, которая может обозначать все, что угодно ) bar "что-то" ( вторая метасинтаксическая переменная, когда в качестве первой используется foo ; чаще всего это бывает имя временного рабочего файла в приводимых примерах ) А WBR - "с наилучшими пожеланиями" я нажал в BlackBox Open Mail Template и увидел ту надпись > Это может и сложно, но в мире существует тьма компиляторов, которые способны это делать (причём подобный синтаксис применяется во многих языках). А оптимизацию способны производить буквально единицы. > Что-то мне подсказывает, что язык немецкий. Только слова английские . Вообще лично мне мне не нравится тема Си vs Паскаль - её забиты HLL форумы, и аргументы там обычно смешные. Как я знаю, паскаль популярен у нас встране (ну что ж поделать, если преподы сами учиться не хотят ?), но не зарубежом. Причины простые - рынок ориентирован на Си, к тому же есть много бесплатных компиляторов (даже MSVC). Delphi у нас многие любят, но сколькие из них его купили ?
S_T_A_S_: >" чаще всего это бывает имя временного рабочего файла в приводимых примерах..." Очень остроумоное объяснение. Да ладно, читал я уже Стивена Леви про }{акеров. А где это в ЧернойКоробке надпись BlackBox Open Mail? >"в мире существует тьма компиляторов, которые способны это делать" Ну так все же завистит от людей. А я не по поводу синтаксиса говорил - просто в Си тьма черная бесполезных и условно бесполезных возможностей которые туда Срауструп как-то умудрился запихнуть. >"Что-то мне подсказывает, что язык немецкий..." Может быть, ладно, интересно а на какой язык похож Си? >"Вообще лично мне мне не нравится тема Си vs Паскаль" Да мне и самому эта тема не нравится - полностью с тобой согласен. Аргументы действительно смешные. С преподами трудно. Может когда я что-либо более менее серьезное реализую тогда будем говорить, сейчас то что. А разве MSVC бесплатен? Я незнал. Мне , за исключением языка нравится эта среда - продуманно все, приятно с таким продуктом иметь дело. Правда программы компилируются ну очень долго, непонимаю как можно вообще делать большие проекты при такой долгой компилляции.
Dimaska > Ocx > Страуструп не является автором Си > На ангдийский, наверное, если его разработали в штатах . > Компилятор только бесплатен, IDE денег стОит, хотя последнюю бету можно бесплатно скачать. > Да уж лучше пускай долго компилируются, чем долго думают. К тому же не обязательно каждый раз всё перекомпилировать полностью.