OberonCore
https://forum.oberoncore.ru/

.NET как мультиязыковая платформа
https://forum.oberoncore.ru/viewtopic.php?f=26&t=129
Страница 1 из 2

Автор:  Сергей Губанов [ Воскресенье, 26 Февраль, 2006 14:30 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
Хочется межъязыкового единообразия - эту проблему более-менее успешно решили в .NET


Скорее менее чем более :D.

Такие языки как Oberon/Component Pascal на Net без оверхеда не отображаемы по нескольким причинам: из-за отсутствия в Net полноценных value-типов (расширяемых struct и value-типовых массивов); вложенных процедур; модулей (Net-овская dll - это не модуль, а библиотека классов, которая хоть и может подключаться динамически, но отключаться не может). Короче, вычислительная модель Oberon/Component Pascal шире чем вычислительная модель Net.

Автор:  Vlad [ Вторник, 28 Февраль, 2006 03:55 ]
Заголовок сообщения: 

Сергей Губанов писал(а):
Короче, вычислительная модель Oberon/Component Pascal шире чем вычислительная модель Net.


Что такое "вычислительная модель"? И если она "шире", то почему не видно такого разнообразия компиляторов для оберон-систем, как для .NET?

Автор:  Илья Ермаков [ Вторник, 28 Февраль, 2006 21:37 ]
Заголовок сообщения: 

Цитата:
то почему не видно такого разнообразия компиляторов для оберон-систем, как для .NET?

Что касается разноязыковых компиляторов, то эта цель пока никогда и не ставилась. Пфистер прямо пишет, что объектная модель ББ - моноязыковая, и в этом есть как свои минусы, так и некоторые весомые плюсы. Лично мне хотелось бы видеть единую объектную модель (т.е. двоично совместимую) и рантайм для семейства модульных языков - все Обероны, Зоннон, Модула и желательно Ады (хотя кое-что в ней придется скорректировать)... Любую из версий Паскаля включать, очевидно, смысла нет, - все это либо устарело, либо в своем варианте частично черпалось из Модулы-Оберона.

Цитата:
Что такое "вычислительная модель"?

Интуитивно мне понятно, что это, но что именно имел в виду Сергей - это уж он сам объяснит.

Автор:  Алексей Елин [ Среда, 01 Март, 2006 03:06 ]
Заголовок сообщения: 

Цитата:
Что такое "вычислительная модель"? И если она "шире", то почему не видно такого разнообразия компиляторов для оберон-систем, как для .NET?


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

"Шире" - значит вводятся нове понятия, отсутсвующие в базовой модели. В этом смысле тот же Perl, Fortran, C++ (забудем про Managed C++) - тоже расширяют модель вычислений .Net.

Вопрос по разнообразию бессмысленнен: 1) .Net - ОБЩЕЯЗЫКОВАЯ исполняющая среда. 2) Оберон - конкретный язык программирования;
Пытаться сравнивать 1) с 2) может ну разве что дилетант в программировании.

Автор:  Vlad [ Среда, 01 Март, 2006 05:22 ]
Заголовок сообщения: 

Алексей Елин писал(а):
Вопрос по разнообразию бессмысленнен: 1) .Net - ОБЩЕЯЗЫКОВАЯ исполняющая среда. 2) Оберон - конкретный язык программирования;
Пытаться сравнивать 1) с 2) может ну разве что дилетант в программировании.


Вопрос был наводящий. Как реакция на бессмысленное (и на мой взгляд тоже) утверждение.

Автор:  Илья Ермаков [ Среда, 01 Март, 2006 09:03 ]
Заголовок сообщения: 

Цитата:
Вопрос по разнообразию бессмысленнен: 1) .Net - ОБЩЕЯЗЫКОВАЯ исполняющая среда. 2) Оберон - конкретный язык программирования;
Пытаться сравнивать 1) с 2) может ну разве что дилетант в программировании.


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

Автор:  Сергей Губанов [ Среда, 01 Март, 2006 16:04 ]
Заголовок сообщения: 

Vlad писал(а):
Что такое "вычислительная модель"? И если она "шире", то почему не видно такого разнообразия компиляторов для оберон-систем, как для .NET?


Шире в том смысле, что реализация Oberon/Component Pascal под платформу .Net невозможна без оверхеда. А вот наоборот .Net поверх Oberon-системы - пожалуйста!

.Net - урезанный Oberon.
Взяли Oberon и запретили расширять value-типы, запретили value-типовые массивы, запретили вложенные процедуры, запретили выгружать модули (обозвали их библиотеками классов), полученное обрезанное чудо обозвали .Net-ом.

Автор:  Сергей Губанов [ Среда, 01 Март, 2006 16:08 ]
Заголовок сообщения: 

Алексей Елин писал(а):
Вопрос по разнообразию бессмысленнен: 1) .Net - ОБЩЕЯЗЫКОВАЯ исполняющая среда. 2) Оберон - конкретный язык программирования;
Пытаться сравнивать 1) с 2) может ну разве что дилетант в программировании.


Oberon - это, в данном случе, не язык, а система (просто называются одним и тем же словом, не понять это может только дилетант в программировании). Сравнивать систему Oberon и систему .Net вполне уместно.

Автор:  Сергей Оборотов [ Среда, 01 Март, 2006 19:53 ]
Заголовок сообщения: 

Цитата:
Как реакция на бессмысленное (и на мой взгляд тоже) утверждение.

А какой еще должен быть смысл? Сказано что в .NET отсутствует вложенность процедур. Поэтому её ВМ уже обероновской. Не понятно только почему это сделано. Но спрашивать об этом здесь неудобно. Лучше в отдельной теме на другом форуме.

Автор:  Алексей Елин [ Среда, 01 Март, 2006 23:31 ]
Заголовок сообщения: 

Цитата:
Oberon - это, в данном случе, не язык, а система (просто называются одним и тем же словом, не понять это может только дилетант в программировании).

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

Цитата:
Сравнивать систему Oberon и систему .Net вполне уместно.

Если разговор идет о ВОЗМОЖНОСТЯХ фреймворков - то пожалуйста, сравнивайте сколько угодно!

Автор:  Vlad [ Четверг, 02 Март, 2006 00:06 ]
Заголовок сообщения: 

Сергей Губанов писал(а):
.Net - урезанный Oberon.


Рассматриваю этот бред как очередной повод к флейму.

Автор:  Илья Ермаков [ Четверг, 02 Март, 2006 13:56 ]
Заголовок сообщения: 

При всех недостатках .NET, не будем забывать, что идея мультиязыковости в такой степени еще нигде не воплощена. И абсолютная прозрачность для сетевого взаимодействия сборок, например, через Http - тоже вещь немаловажная. Но инструментальная среда VS, на мой взгляд, подобна бронтозавру по неуклюжести и неповоротливости.

Автор:  Сергей Губанов [ Четверг, 02 Март, 2006 18:11 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
При всех недостатках .NET, не будем забывать, что идея мультиязыковости в такой степени еще нигде не воплощена.

Так она и в Net воплощена только для языков опирающихся либо на изоморфную .Net вычислительную модель, либо на еще меньшую. Например, у машины Java вычислительная модель ещё меньше чем у .Net. Так что Java поверх .Net работать будет прекрасно. Говорить о мультиязыковости .Net для всех остальных языков, опирающихся на более широкие вычислительные модели, не имеет смысла. Зачем под .Net программировать на "неумещающемся" в ней языке получая (невидимый/неожидаемый) оверхед на ровном месте (из-за эмуляции), если можно сразу взять канонический (безоверхедный) для неё язык C#? Что же касается языков полностью изоморфных языку C# (опирающихся ровно на туже самую вычислительную модель), то да, конечно, тут вот мультиязыковость есть. Но эти языки отличаются только лишь обозначениями. Каков смысл иметь несколько таких в точности одинаковых языков? Смысл чисто маркетинговый.

Илья Ермаков писал(а):
...сетевого взаимодействия...

Это можно было вынести на уровень библиотек, а не встраивать...

Автор:  Илья Ермаков [ Четверг, 02 Март, 2006 20:05 ]
Заголовок сообщения: 

Цитата:
Например, у машины Java вычислительная модель ещё меньше чем у .Net.

Сергей, а вы не путаете вычислительную модель языка, с которой имеет дело программист, и вычислительную модель той платформы, на которой выполняется бинарный код. Вычислительная модель I386 гораздо уже, чем вычислительная модель NET VM, и что дальше? В том и задача любого компилятора, чтобы свести код для более мощной выч. модели в код для боле простой. Как же приложния, скомпилированные с Оберона, успешно выполняются ена JavaVM? Другой вопрос, что для подстройки под модуль, нап. на другом языке, надо отказываться от некоторых средств - ну так если возникла необходимость писать проект смешанно - ничего не поделаешь...

Цитата:
Это можно было вынести на уровень библиотек, а не встраивать...

Можно и на ассемблере писать вместо ЯВУ...
Задача прозрачного удаленного взаимодействия кода очень актуальна. Это и QNX, и Amoeba, и .NET.

Резюме: Надо делать Distributed Oberon System!

Автор:  Илья Ермаков [ Четверг, 02 Март, 2006 20:09 ]
Заголовок сообщения: 

Цитата:
Зачем под .Net программировать на "неумещающемся" в ней языке получая (невидимый/неожидаемый) оверхед на ровном месте (из-за эмуляции), если можно сразу взять канонический (безоверхедный) для неё язык C#?


Все это было б хорошо, когда бы не море кода, написанного на разных, в том числе устаревших, языках. И мультиязыковая среда позволяет не тратить огромные деньги на его переписывание и не держаться за старый язык, а переписывать все постепенно. До сих пор в мире колоссальное количество кода написано на Фортране и Коболе. Успешно работающего кода. Не выкидывать же?

Автор:  Сергей Губанов [ Суббота, 04 Март, 2006 10:51 ]
Заголовок сообщения: 

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


Вычислительная модель языка C# в точности совпадает с вычислительной моделью платформы .Net. Это её канонический язык. Поэтому, ничего я тут не путаю.

Про бинарный код (и unsafe режим) ниже:
Илья Ермаков писал(а):
Вычислительная модель I386 гораздо уже, чем вычислительная модель NET VM

Задыхаясь от переполняющих чувств: НАОБОРОТ!!!

Самая широкая вычислительная модель, которая включает в себя все остальные, есть такая модель, которая позволяет модифицировать любой участок памяти, какой только вздумается, когда вздумается и как вздумается (x86 это делать позволяет). Более узкие вычислительные модели получаются в результате накладывания ОГРАНИЧЕНИЙ на способы чтения и модификации памяти за счёт введения новых уровней абстракции: типизированные переменные, инкапсуляция, полиморфизм и т.п.

Так вот, если не рассматривать unsafe режим, то вычислительная модель Net, безусловно, меньше (строже) чем модель разрешающая произвольную модификацию любого участка памяти (например, x86).

А если рассматривать unsafe, то пропадает особый смысл использования Net: ну, быть может, только из-за каких-то библиотек.

Автор:  Илья Ермаков [ Суббота, 04 Март, 2006 15:25 ]
Заголовок сообщения: 

А, все понял! "Шире" = "более общее". Просто я понимал раньше Ваше "шире" = "богаче". Тогда безусловно согласен.

Автор:  Сергей Оборотов [ Четверг, 09 Март, 2006 06:05 ]
Заголовок сообщения: 

Вычислительная модель x86 безусловно уже .NET-овской. Хотя бы потому, что вторая будет работать там где пасует первая.

Автор:  Сергей Губанов [ Четверг, 09 Март, 2006 10:29 ]
Заголовок сообщения: 

GUEST писал(а):
Вычислительная модель x86 безусловно уже .NET-овской. Хотя бы потому, что вторая будет работать там где пасует первая.

Что-о-о?

Автор:  Сергей Оборотов [ Четверг, 09 Март, 2006 12:54 ]
Заголовок сообщения: 

Какое здесь долгое эхо однако. Что именно вас интересует, Сергей? Где не работает x86 и работает .NET?

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