Оберон-технология: особенности и перспективы |
Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение.
Всего в теме 6256 сообщений
Добавить свое сообщение
Отслеживать это обсуждение Обсуждение из раздела Школа ОБЕРОНА
№ 2186 23-01-2007 14:21 | |
Ответ на »сообщение 2184« (Jack Of Shadows)
___________________________
Ответ на »сообщение 2183« (Снегурочка)
___________________________
>>Если не секрет, на чем написан для Erlang run-time HiPE (High Performance Erlang)?
Не секрет. На си.
А почему же не на языке Erlang, столь убедительно превосходящем все императивные языки? ;)
Но вопрос не в этом.
Насколько я понял, главное в Эрланге - легковесные процессы.
Неясно только, какое отношение они имеют к ФП.
Для функции поток создается явным вызовом spawn:
Pid = spawn(Mod, Func, Args)
Что здесь спефифически функционального?
№ 2185 23-01-2007 14:18 | |
Ответ на »сообщение 2184« (Jack Of Shadows)
___________________________
Снегурочка, вы меня радуете. Я таких аргументов уже лет 20 как не слышал :)))
Юноша, Вам хоть сейчас на трибуну оратором. Кого угодно перекричите. Какие аргументы, какой диспут? Акститесь, гражданин!
Можно практически для любой парадигмы создать язык, нашпигованный средствами, которые на полную катушку используют встроенный run-time на ассемблере или Си (только записывая машинные инструкции "своими словами"), и потом говорить: какая замечательная весчь! Лучше вашего ассемблера!
Мы не будем делать ассемлерных вставок, чтобы не нарушать чистоту. Мы просто передадим параметр встроенной функции. Да здравствует ФП!
№ 2184 23-01-2007 14:08 | |
Ответ на »сообщение 2183« (Снегурочка)
___________________________
Если не секрет, на чем написан для Erlang run-time HiPE (High Performance Erlang)?
Не секрет. На си. Отсюда следуя женской логике, все программы написанные на ерланге - на самом деле написаны на си. :)))
Wait a second! А на чем написана java ? Черт побери, тоже на си!! Значит все эти сотни миллионов строк на java - это на самом деле си! Значит нам врали все это время! :)))
Снегурочка, вы меня радуете. Я таких аргументов уже лет 20 как не слышал :)))
№ 2183 23-01-2007 14:02 | |
Ответ на »сообщение 2178« (Jack Of Shadows)
___________________________
С чем кстати прекрасно справился, показав результаты до сих пор непревзойденные ни одним императивный языком, несмотря на их историческое доминирование в этой области.
Если не секрет, на чем написан для Erlang run-time HiPE (High Performance Erlang)? Неужели не на Си? Или мое зрение мне изменяет? Что вообще в дистрибутиве Erlang делают почти 3 мегабайта исходников на Си? На чем реализован GC, поддержка процессов (гордость Erlang), загрузчик, вся арифметика?
И раз уж речь о run-time, как Вы прокомментируете следующий фрагмент (hipe_x86_encode.txt)?
The hipe_x86_encode module implements the mapping from symbolic x86 instructions to their binary representation, as lists of bytes.
Instructions and operands have to match actual x86 instructions and operands exactly. The mapping from "abstract" instructions to correct x86 instructions has to be done before the instructions are passed to the hipe_x86_encode module. (In HiPE, this mapping is done by the hipe_x86_assemble module.)
The hipe_x86_encode module handles arithmetic operations on 32-bit integers, data movement of 8, 16, and 32-bit words, and most control flow operations. A 32-bit address and operand size process mode is assumed, which is what Unix and Linux systems use.
Operations and registers related to floating-point, MMX, SIMD, 3dnow!, or operating system control are not implemented. Segment registers are supported minimally: a 'prefix_fs' pseudo-instruction can be used to insert an FS segment register override prefix.
<...>
Once a symbolic instruction "Insn" has been constructed, it can be translated to binary by calling
insn_encode(Insn)
which returns a list of bytes.
Since x86 instructions have varying size (as opposed to most RISC machines), there is also a function
insn_sizeof(Insn)
which returns the number of bytes the binary encoding will occupy. insn_sizeof(Insn) equals length(insn_encode(Insn)), but insn_sizeof is cheaper to compute. This is useful for two purposes: (1) when compiling to memory, one needs to know in advance how many bytes of memory to allocate for a piece of code, and (2) when computing the relative distance between a jump or call instruction and its target label.
"Чистый функциональный", говорите? "Павлины, говоришь?" (c) "Белое солнце пустыни"
Однако... Правой рукой левое ухо...
№ 2182 23-01-2007 13:51 | |
Ответ на »сообщение 2181« (Снегурочка)
___________________________
Речь не о том, может ли конкретный ФЯ Erlang использоваться в сфере системного программирования, а превосходит ли Си и Оберон для конкретных задач (не параллельного программирования и даже не программирования ОС).
Слава богу с "может" разобрались. Насчет "превосходит" - написанная на ерланге ос превосходит по своим показателям все что было создано в этой области до них на императивных языках. Следовательно ерланг превосходит ИЯ в решении этой задачи.
было бы интересно увидеть опровержение моей мысли о том, что
Девушка :)) Разрешите мне вас проинформировать что Фрнацузская Академия Наук перестала заниматься опровержением высказываний любого идиота пару веков назад. Наука не занимается опровержением любого высосанного из пальца высказывания. Наука работает следующим образом - бремя доказательства лежит на том кто утверждение высказал.
Я сказал что ФЯ прекрасно справляются с таким классом задач как системное программирование, и в качестве доказательства привел конкретный пример.
Я сказал что ФЯ дают преимущества при решении подобного класса задач, и в качестве доказательства привел конкретный пример где это преимущество наглядно и неопровержимо реализовано.
Вы сказали что ФЯ ущербны в этом классе задач, и что они чем то уступают оберону. Бремя доказательства этого утверждения лежит на вас. Вперед, с песней :))
№ 2181 23-01-2007 13:01 | |
Ответ на »сообщение 2178« (Jack Of Shadows)
___________________________
Напоминаю еще раз что чистый ФЯ Эрланг как раз и создавался с целью использования в системной области, т.е. для написания операционных систем реального времени огромного размера и непробиваемой надежности.
Речь не о том, может ли конкретный ФЯ Erlang использоваться в сфере системного программирования, а превосходит ли Си и Оберон для конкретных задач (не параллельного программирования и даже не программирования ОС).
Повторю свое утверждение: было бы интересно увидеть опровержение моей мысли о том, что ФП хуже подходит для задач системного программирования, чем Си или Оберон и что Хаскель уступает им в роли промежуточного языка для кодогенерации. Раз Haskell обошли молчанием, подставьте в мое утверждение вместо него Erlang.
Я вся внимание...
№ 2180 23-01-2007 12:54 | |
Ответ на »сообщение 2177« (15)
___________________________
О! Натуральный ряд вернулся! :о)) Правда, боюсь, ненадолго... :о))
№ 2179 23-01-2007 12:45 | |
Ответ на »сообщение 2178« (Jack Of Shadows)
___________________________
НУ конечно, что то позабуду обязаельно :))
http://ejabberd.jabber.ru/ - Самый популярный open source Messaging Server, написанный на эрланге.
№ 2178 23-01-2007 12:37 | |
Напоминаю еще раз что чистый ФЯ Эрланг как раз и создавался с целью использования в системной области, т.е. для написания операционных систем реального времени огромного размера и непробиваемой надежности.
С чем кстати прекрасно справился, показав результаты до сих пор непревзойденные ни одним императивный языком, несмотря на их историческое доминирование в этой области.
Вы не берете в расчет господа что проникновение в область может занять десятки лет. ПО вашему если бы ФЯ были лучше, то все участники рынка за неделю переписали бы свои ОС на ФЯ. Ну а раз они за неделю не переписали, то это доказательство того что ФЯ мол плохо для этого подходят :))
Инерция рынка, и вес сотен миллионов строк уже написанного кода - вешь очень тяжелая. Поэтому распространение ФЯ дело не пары месяцев и даже не пары дет.
Из успешных и широко используемых программ написанных на ФЯ могу выделить следующие.
1. Несколько ОС для телефонных систем (Ericcsson, Nortel) - Эрланг
2. Огромное количество различных экспертных систем, используемых в банковских структурах (лиспы)
3. Вэб сервер YAWS (про производительности рвет лидера индустрии Apache как тузик грелку) - Эрланг
4. База Данных Mnesia - Используется на нескольких очень больших системах для обслуживания сотен миллионов пользователей (те самые телефонные ящики) - Эрланг
5. Perl 6 - Haskell
6. CVS darcs - Haskell
Может еще что то есть я не в курсе. Это очень мало. Но это начало. Начало, доказывающее что мифических задач "неудобных" для ФП несуществует. Начало, доказывающее что при решении задач где традиционно использовались ИЯ - ФЯ дает такие неоcпоримые преимущества как надежность и масштабируемость (операционные системы, базы данных), производительность (вэб сервер YAWS), легкость и скорость разработки (Perl 6)
Активные разработки в области распараллеливания программ на сегодняшний день ведутся подавляющим образом на ФЯ. Tранзакционная память (STM в хаскеле), автоматическое распараллеливание (Parallel haskell).
А ведь многоядерные процессоры в настольных компьютерах - это уже сегодняшний день. Те кто готовится к этому сегодня, будут владеть этим миром завтра.
№ 2177 23-01-2007 11:52 | |
Вернувшись через полгода посетил форум и обнаружил тех же и тоже - массу дискуссий ни о чем и массу свободного времени у участников. Своего рода островок стабильности, что и приятно.
Правда появилась свежая идея скрестить ежа и ужа (Oberon и Haskel) и один из постоянных выступающих сменил пол. Аналогичная история была с пользователем ЖЖ http://telnikova.livejournal.com
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|