OSDev
http://osdev.ru/

Кое что об унифицированной архитектуре
http://osdev.ru/viewtopic.php?f=2&t=870
Страница 1 из 2

Автор:  dragon [ 05 мар 2014, 23:10 ]
Заголовок сообщения:  Кое что об унифицированной архитектуре

Не знаю, было или нет. В теме http://board.kolibrios.org/viewtopic.ph ... 4&start=30
появился пост, ссылающийся на http://www.computerra.ru/65749/steps/

"Система STEPS: двадцать тысяч строк кода, которые изменят программирование, операционные системы и интернет"

Похоже, мир таки двигается в сторону унификации. Или как обычно, поговорили и разошлись?

Автор:  Yoda [ 06 мар 2014, 15:13 ]
Заголовок сообщения:  Re: Кое что об унифицированной архитектуре

dragon писал(а):
"Система STEPS: двадцать тысяч строк кода, которые изменят программирование, операционные системы и интернет"

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

dragon писал(а):
Похоже, мир таки двигается в сторону унификации. Или как обычно, поговорили и разошлись?

Определённая унификация будет, я в этом уверен. Но только не в таком виде и не под флагом Smalltalk/Squeak. В данном случае другого исхода кроме как "поговорили и разошлись" быть не может.

Автор:  Bargest [ 06 мар 2014, 16:48 ]
Заголовок сообщения:  Re: Кое что об унифицированной архитектуре

Да проще можно с таким подходом. Написать всю систему одним словом:
Код:
 RUN

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

Автор:  pavia [ 07 мар 2014, 17:15 ]
Заголовок сообщения:  Re: Кое что об унифицированной архитектуре

Вы видимо не дочитали статью до конца все данные по компилятору приводиться.
Трансляция с объектного уровня на ЯВУ 130 строк. Трансляция с ЯВУ в промежуточное представление 1100 строк. Компиляция не учитывается. Но в целом она скорее всего не более 100-1000 строк.

Дело в другом что подход в статье прост выкинуть всё лишнее. С таким подходом можно работать и создавать ОС.
Они не первые. Существует тысячи языков и сотни ОС.

Но такие продукты это лабораторные образцы они не учитывают интересы большинства забывают о нюансах. Которых очень много.

Язык программирования. Он должен быть лаконичным. А следовательно поддерживать строки, целые числа, рациональные, комплексные числа, матрицы, символьные вычисления, лямбда вычисления и другие математические операции, динамические массивы и матрицы, длинные числа и тд.

А это уже код для АСТ больше 1 000 строк, а возможно и более 10 000.
На самом деле если по уму делать, то только модификаторы и объявления АСТ 1 000 строк кода.

В принципе ядро или каркас для ОС можно написать в коротком виде уложившись от 10 000-100 000 строк.
А вот драйвера и вспомогательные библиотеки которые решают частные задачи. Могут занять очень много.
WindowsPE занимает около 1 мбайта, что примерно равно 100 000 строкам.

Автор:  Bargest [ 07 мар 2014, 20:29 ]
Заголовок сообщения:  Re: Кое что об унифицированной архитектуре

Цитата:
Компиляция не учитывается. Но в целом она скорее всего не более 100-1000 строк.

Дочитал. И думаю, что их компиляция значительно больше 1000 строк.
Цитата:
А вот драйвера и вспомогательные библиотеки которые решают частные задачи. Могут занять очень много.
WindowsPE занимает около 1 мбайта, что примерно равно 100 000 строкам.

А если пытаться сделать ОС, эффективно работающую на сильно разном железе, то и 100 000 будет слишком мало.
Не говоря о том, что вообще с их подходом писать драйвера как-то глупо. Идея целиком и полностью состоит из неэффективных решений. Языки, трансляторы языков, трансляторы трансляторов, и так далее. Все это нагромождение не может работать эффективно; думаю, что вся их система функционирует только благодаря тому, что процессоры сейчас 8миядерные по 3 с гагом гигагерца. И по мнению разработчиков, мощность компьютерам девать некуда и надо ее расходовать по-максимуму.
И все только ради того, чтобы можно было заявить про 20 000 строк.

Автор:  pavia [ 07 мар 2014, 21:32 ]
Заголовок сообщения:  Re: Кое что об унифицированной архитектуре

:mrgreen: Спасибо поржал. Это классическая схема используемая всеми современными компиляторами (GPP, Clang, RAD и тд). Классической она стала толи в 70-тых толи в 80-тых годах. Когда и гигагерцового процессора в помине не было.

Автор:  Yoda [ 09 мар 2014, 00:16 ]
Заголовок сообщения:  Re: Кое что об унифицированной архитектуре

pavia писал(а):
Трансляция с объектного уровня на ЯВУ 130 строк. Трансляция с ЯВУ в промежуточное представление 1100 строк. Компиляция не учитывается. Но в целом она скорее всего не более 100-1000 строк.

Если говорить про описание синтаксиса языка на YACC/BISON или языке OMeta, о котором идёт речь в статье, то да, его, вероятно, можно уложить в пару сотен строк. Но если вы считаете, что можно упихнуть весь компилятор в тысячу строк, вы явно не имели практического опыта с компиляторами. Язык OMeta весьма напоминает YACC/BISON и выполняет сходные функции. Вы знаете размер исходников BISON? 44 тысячи строк! А ведь я ещё не включаю туда 25 тыс строк библиотечных функций в его составе. И это - только одна фаза компилятора! Так что не верьте в те сказки, которые вам рассказывают.

pavia писал(а):
Дело в другом что подход в статье прост выкинуть всё лишнее. С таким подходом можно работать и создавать ОС.

Это очень хороший подход, я сам всегда ратую за него. Но он не должен доходить до абсурда. Есть определённый предел, после которого падает функциональность, затем падает эффективность, а потом пропадает и ясность.

Автор:  iz56 [ 09 мар 2014, 08:44 ]
Заголовок сообщения:  Re: Кое что об унифицированной архитектуре

Выше головы все хотят прыгнуть. Я про все эти игры с ЯВУ.

Автор:  pavia [ 09 мар 2014, 10:53 ]
Заголовок сообщения:  Re: Кое что об унифицированной архитектуре

Yoda,
Я имел в виду компиляцию не с Ometa, а с промежуточного языка Nothing в Натив. А полная компиляция включает все стадии просто просуммировать данные 130+1100+1000.

По поводу BISON я знал что много, но детально его не изучал. Зато читал справку она очень маленькая. У BISON много кода так как ему приходится поддерживать много частностей. Но честно я думал у него кода будет меньше.
У BP6.0 к примеру 31 тысяча строк кода. Это целиком компилятор. С поддержкой отладочной информацией и BASM.

Но я прекрасно знаю сколько занимает компилятор BP6.0 и сколько GCC, и Clang так как их код пристально изучал.
А вы знаете сколько занимает транслятор Вирта для PL/0 в ассемблер? 440 строк. Правда смело значения можно умножить на 2 так как явно место в книге экономили.
И свой компилятор я писал прекрасно знаю что и сколько места занимает.

Автор:  Yoda [ 09 мар 2014, 13:51 ]
Заголовок сообщения:  Re: Кое что об унифицированной архитектуре

pavia писал(а):
Я имел в виду компиляцию не с Ometa, а с промежуточного языка Nothing в Натив. А полная компиляция включает все стадии просто просуммировать данные 130+1100+1000.

Скачайте исходники Tamacola и OMeta и попробуйте в них разобраться. Я не напрасно в своём посте привёл ссылку на OTCC - в котором даже не-obfuscated версия компилятора с языка C, написанная на нём же самом, имеет размер 15000 байт и 633 строки. Т.е., я знаю, что если поставить себе целью поставить рекорд компактности и много лет идти к этой цели, то можно достичь существенных успехов. Также я не случайно привёл последовательность, в которой приносятся жертвы в погоне за размером. Попробуйте воспользоваться этим компилятором.
По поводу Тамаколы/ОМеты. Институт VPRI существует с 2001 года. Получается, что за 13 лет они написали всего несколько тысяч строк. Почему? Потому что Тамакола, - развитие LISP/Scheme, - типичный представитель мозголомного функционального программирования. Общеизвестный факт, что функциональные языки существенно плотней, но на них сложней писать, а в большинстве случаев их эффективность, мягко говоря, сомнительна. Иными словами, VPRI 13 лет шёл к намеченной цели - создать ультра-компактную, но неэффективную, неудобную и нечитаемую среду, в чём, вероятно, и преуспел.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/