OberonCore https://forum.oberoncore.ru/ |
|
.NET как мультиязыковая платформа https://forum.oberoncore.ru/viewtopic.php?f=26&t=129 |
Страница 1 из 2 |
Автор: | Сергей Губанов [ Воскресенье, 26 Февраль, 2006 14:30 ] |
Заголовок сообщения: | |
Илья Ермаков писал(а): Хочется межъязыкового единообразия - эту проблему более-менее успешно решили в .NET
Скорее менее чем более ![]() Такие языки как 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/ |