OSDev

для всех
Текущее время: 15 дек 2017, 01:31

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 81 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9  След.
Автор Сообщение
 Заголовок сообщения: Re: PlutOS
СообщениеДобавлено: 20 июл 2012, 13:23 

Зарегистрирован: 22 май 2007, 15:29
Сообщения: 290
Yoda писал(а):
LLVM всем хороша, кроме того, что это всё-таки текстовая машина и требует синтаксического разбора. Она позиционируется, как промежуточный язык, но на мой взгляд это как раз неудачный подход. Получается сначала компиляция с языка (синтаксический разбор) в язык (второй синтаксический разбор) и потом генерация кода. Байт код позволил бы практически избавиться от второго синтаксического анализа. А так виртуальная машина получается ближе к скриптовым языкам. А вот хорошая бинарная виртуальная машина как раз очень идеально подошла бы в качестве промежуточного уровня между синтаксическим анализом и генерацией кода – для разделения фронтенда и бэкенда при компиляции с любого языка в любую архитектуру.


У LLVM есть bitcode, бинарное представление ее промежуточного языка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PlutOS
СообщениеДобавлено: 20 июл 2012, 14:47 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
Yoda писал(а):
А вот хорошая бинарная виртуальная машина как раз очень идеально подошла бы в качестве промежуточного уровня между синтаксическим анализом и генерацией кода

Ну, разрабатываемая нами "Единая среда" -- и есть такая промежуточная машина с обратимым байт-кодом. Вот закончим с CoreLib и примемся за реализацию байт-кода в коде, заодно и спецификация прояснится.

Yoda писал(а):
для разделения фронтенда и бэкенда при компиляции с любого языка в любую архитектуру.

Поддержка нескольких языков в байт-коде размывает концепцию: получившийся код не соответствует ни одному языку, и возникает соблазн сделать универсальный язык-монстр, являющийся по совместительству ассемблером байт-кода. А раз появится язык, программистам захочется писать сразу на нем, чтобы быть ближе к виртуальному железу. Ну, если сторонним программистам не захочется, то самому автору -- как пить дать. Он будет тогда "крутой пацан", а все остальные -- "лузеры", не познавшие дзена расово верного языка...

Чтобы не родить монстра, свой язык лучше проектировать одновременно с виртуальной машиной, делая его официальным ассемблером. Без языка никак: не сделаешь по-хорошему -- выйдет по-плохому, и придется или всю жизнь плеваться, или переписывать начисто и рвать зад за совместимость.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PlutOS
СообщениеДобавлено: 20 июл 2012, 17:19 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 938
Откуда: Дагоба
Freeman писал(а):
Поддержка нескольких языков в байт-коде размывает концепцию: получившийся код не соответствует ни одному языку

Да он вообще-то и не должен соответствовать. Его задача - низкоуровневое машиннонезависимое представление любого алгоритма. Я думаю, что если не брать в расчёт экстравагантные языки типа Forth, Lisp, Prolog, то почти у всех языков одно и то же семантическое ядро. Вот задача как раз и состоит в том, чтобы максимально близко к машинному уровню (но при этом архитектурно-независимо) выразить это семантическое ядро.

Freeman писал(а):
свой язык лучше проектировать одновременно с виртуальной машиной, делая его официальным ассемблером.

А какой смысл в виртуальной машине, которая годится только для одного языка высокого уровня?

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PlutOS
СообщениеДобавлено: 20 июл 2012, 17:51 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
Yoda писал(а):
то почти у всех языков одно и то же семантическое ядро.

Речь про императивные языки?

Yoda писал(а):
А какой смысл в виртуальной машине, которая годится только для одного языка высокого уровня?

Ну, общая машина для императивных языков уже есть -- как раз LLVM. И вполне ничего. Зачем делать еще одну? Тягаться с Университетом Иллинойса? Чисто для развлечения, в качестве "лабораторной работы"?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PlutOS
СообщениеДобавлено: 20 июл 2012, 20:28 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 938
Откуда: Дагоба
Freeman писал(а):
Речь про императивные языки?

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

grindars писал(а):
У LLVM есть bitcode, бинарное представление ее промежуточного языка.

Прошу прощения за непоследовательное цитирование...
Я, честно говоря, первый раз слышу про двоичное представление. Не нашёл такой инфы ни в вики, ни на оф-сайте... можно конкретную ссылку?

Freeman писал(а):
Ну, общая машина для императивных языков уже есть -- как раз LLVM.

Так я же и говорю - она хороша, даже очень. Но её недостаток в том, что она текстовая.

Freeman писал(а):
Тягаться с Университетом Иллинойса? Чисто для развлечения, в качестве "лабораторной работы"? Нет, я допускаю, конечно, что безвестный русский программист может найти серьезные изьяны в концепциях американского университета, и не сомневаюсь, что сможет реализовать задуманное в коде.

И чего теперь, трястись от преклонения перед Университетом Иллинойса? Я могу сказать, что с такой жизненной установкой ничего нового не сделать. А между тем, жизненная практика показывает, что в основном проекты толкаются одиночками-лидерами, в крайнем случае, двое-трое друзей, вокруг идей которых собираются впоследствии группы. Таких исторических примеров масса - Кен Томпсон, Деннис Ритчи и Дуглас Макилрой, Стив Джобс и Стив Уозняк, Билл Гейтс и Пол Аллен, Братья Джон и Адриан Кармак, одиночка Бьёрн Страуструп, одиночка Линус Торвальдс, да блин, можно долго перечислять. Это конечно не означает, что любой че-к вдруг сразу может стать Биллом Гейтсом, но всё же, эти одиночки откуда-то берутся и считать, что персонально ты ничего нового предложить не можешь – подход, а-приори ведущий к провалу затеи. Вообще я тоже участвовал в университетских проектах и отлично знаю, что никакой фантастики за ними не скрывается, – обычные студики и аспиранты под руководством фанатиков-преподавателей и доцентов 8-).

Freeman писал(а):
Но такой специалист не будет задавать вопросы на форуме.

А где же они тогда общаются? В скайпе? Или вообще ни с кем не общаются? :lol: :mrgreen:

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PlutOS
СообщениеДобавлено: 20 июл 2012, 21:37 

Зарегистрирован: 22 май 2007, 15:29
Сообщения: 290
Yoda писал(а):
Я, честно говоря, первый раз слышу про двоичное представление. Не нашёл такой инфы ни в вики, ни на оф-сайте... можно конкретную ссылку?


Вот оно. В документации на подсистемы лежит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: PlutOS
СообщениеДобавлено: 20 июл 2012, 23:48 
Аватара пользователя

Зарегистрирован: 27 апр 2012, 00:27
Сообщения: 22
Откуда: Узбекистан, Ташкент
Извиняюсь, :mrgreen: я не помешаю дискуссии :?:
Вот, кое-как удалось более-менее красиво переписать почти с нуля симулятор моего ASCII-процессора.
Однако, в отличии от чернового варианта, не реализована организация вложения математическими скобками (...) и т.д.
К тому же, имеются сильные глюки.
Вместо 128 байтной ПЗУ (SMARTIC.rom.mark) пришлось набивать целый килобайт! Чтобы упростить некоторую логику с исключением просчётов.

В целом же, как видно, всё написано очень примитивно. Легко спортируется в любой vhdl-проект. :roll:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PlutOS
СообщениеДобавлено: 21 июл 2012, 11:42 

Зарегистрирован: 22 май 2007, 15:29
Сообщения: 290
Кстати, а почему бы не писать этот процессор на HDL и не испытывать его в симуляторе? В той же Xilinx-овой ISE есть ISIM, который вполне подходит для такого.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PlutOS
СообщениеДобавлено: 21 июл 2012, 14:24 

Зарегистрирован: 26 мар 2012, 17:32
Сообщения: 208
> Нет, я допускаю, конечно, что безвестный русский программист может найти серьезные изьяны в концепциях американского университета, и не сомневаюсь, что сможет реализовать задуманное в коде.
К слову, задумывались над тем сколько в т.ч. русских программистов (да что там программистов, а даже отделов институтов) пилит LLVM? Время одиночек давно уже практически ушло, серьёзные проекты пилят многие люди из разных частей света.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PlutOS
СообщениеДобавлено: 21 июл 2012, 18:21 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Nable писал(а):
К слову, задумывались над тем сколько в т.ч. русских программистов (да что там программистов, а даже отделов институтов) пилит LLVM? Время одиночек давно уже практически ушло, серьёзные проекты пилят многие люди из разных частей света.

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 81 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB