OSDev

для всех
Текущее время: 28 мар 2024, 20:18

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




Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: язык программирования для ОС
СообщениеДобавлено: 29 мар 2015, 22:19 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
pavia писал(а):
Из википедии. Может и не достоверно зато суть верная.

В том же Паскале сплошные мутации, и чем это им ООП не понравился. Фишка ООП в том, что каждый объект надо отлаживать как отдельное приложение. Таким образом, одно сложное приложение разбивается на несколько маленьких, что имеет определённый плюс.
Как в электронике - сначала была элементарная логика (рассыпуха), это типа функций и процедур. Потом стали делать БИС и даже микроконтроллеры - это сложнее, но зато и задачи решаются поинтересней.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: язык программирования для ОС
СообщениеДобавлено: 30 мар 2015, 08:45 
Аватара пользователя

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

Не добился. Он нигде об этом не писал.

pavia писал(а):
Проблема ООП в том что трудно проверить или доказать исправность в виду наличия мутаций во время работы. Значит такие мутации надо свести к мнимому.

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

Himik писал(а):
Как в электронике - сначала была элементарная логика (рассыпуха), это типа функций и процедур. Потом стали делать БИС и даже микроконтроллеры - это сложнее, но зато и задачи решаются поинтересней.

Отличная аналогия!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: язык программирования для ОС
СообщениеДобавлено: 30 мар 2015, 19:31 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Объект подразумевает состояние, которое по определению мутабельно, иначе оно описывалось бы константой. Но если изменяемое внутреннее состояние не меняет семантику функционала, тогда поведение объекта достаточно предсказуемо для построения доказательств.

Ещё мне кажется, что если делать абстрагирование, инкапсуляцию и полиморфизм правильно, "по книжному", то внутренняя мутабельность объекта будет скрыта, практически нивелирована для пользователя.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: язык программирования для ОС
СообщениеДобавлено: 12 май 2015, 10:58 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
Прочитал про Rust на Хабре. Обратил внимание на вступление переводчика, обращающего внимание на специфические для Rust термины. Подумал об отдельной странице с такими терминами для Кантора.

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

Однако. В мире, похоже, начинается реннесанс компилируемых языков.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: язык программирования для ОС
СообщениеДобавлено: 12 май 2015, 13:37 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Вы видимо смайлик забыли. php версии с 3 компилируемый. Javascript тоже, давно компилируется. Их проблема это ООП. Собственно почему мне не хватает механизма абстрактных записей. Когда к примеру один тип может трактоваться как byte, а в другом как real. В одном случае 1 байт, а в другом 4. В принципе это решается на ООП, правда с копанием во внутренней организации объекта.

Да и термины (ownership, borrowing, lifetime parameter) широко известные. Просто автор не владеет ими.
Цитата:
Подумал об отдельной странице с такими терминами для Кантора.
Проблема в поддержании актуальности такой терминологии. Поэтому не даром немцы при свечах в 19 веке делали список терминов в конце книги, а не в начале.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: язык программирования для ОС
СообщениеДобавлено: 12 май 2015, 13:57 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Проблема ООП в сокрытие информации. Вернее инкапсулирование. Которое добивается наличием проверок данных по входу и модификации по выходу.
И динамическое связывание так же требует от объекта наличия проверок или даже лишних действий.
Из-за всего этого ветвления попадают в цикл и портят оптимизатор. Так как во время работы оптимизатор практически не способен предсказать по каким веткам пойдет программа.
А в Си мы сами прописываем кратчайшие пути.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: язык программирования для ОС
СообщениеДобавлено: 12 май 2015, 14:13 
Аватара пользователя

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

Они (и вы) можете сколько угодно вешать лапшу на уши, но я человек старой школы, и для меня компилируемый язык -- это из которого можно получать exe-файлы, содержащие машинный код, поэтому даже .NET пока не считается


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: язык программирования для ОС
СообщениеДобавлено: 12 май 2015, 18:55 

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
Цитата:
php версии с 3 компилируемый. Javascript тоже, давно компилируется.

Jit - это хорошо, но это не совсем компиляция в "традиционном" виде. Все Jit-компилируемые языки получают популярность за счет своей управляемости. При выполнении происходит просто невообразимое количество проверок по каждому чиху, поиска чего-либо при каждом вызове (да, результат кешируется, но все же), повсюду куча этой вашей абстрактности и виртуальности (половина кода вызывается через vftable) и прочих чудес инженерной мысли. А потому даже после докомпилирования из внутреннего представления в асму приложение уйму времени проводит в недрах виртуальной машины, что не лучшим образом сказывается на производительности.
Jit-средам не надо генерировать быстрый код, нужно только убедить всех, что код быстрый, с помощью синтетических тестов. Где-то были статьи, что тот же C# крайне фигово умеет делать инлайны, не особо любит разворачивать циклы - короче не умеет базовые вещи оптимизатора. Хотя ссылку уже не найду.
Конечно, jit во много раз быстрее, чем прямая интерпретация, но до скорости обычного компилируемого кода с нормальным оптимизатором на реальных приложениях ему далеко. В первую очередь из-за чрезмерно активной работы с памятью, когда это не шибко нужно, и из-за постоянных проверок на все случаи жизни, чтобы ничего никогда не могло упасть. А если работу с памятью, все проверки и поиск выпилить, то все эти php с javascript'ами и прочими C#-ами превратятся в тот же пресловутый Си. Да, они действительно станут полностью компилируемыми в "традиционном" смысле, но что толку-то.

Потому я полностью согласен с Freeman'ом по поводу определения компилируемости. Наличия кусочков асмы где-то во время выполнения не достаточно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: язык программирования для ОС
СообщениеДобавлено: 12 май 2015, 19:49 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
Раз такое дело, скачал я этот Rust, чтобы хоть краем глаза посмотреть, насколько он честен в компиляции. При попытке запустить получил ошибку:
Цитата:
Точка входа в процедуру AcquireSRWLockExclusive не найдена в библиотеке DLL KERNEL32.dll

Windows 7 хочет, по всей видимости. В самом PE в поле версии ОС стоит 4.0, даже не 5.0... Раз пока бета, простим.

Попробовать всё равно не получится, вначале нужно комп проапргейдить. :cry:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: язык программирования для ОС
СообщениеДобавлено: 12 май 2015, 21:01 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Freeman писал(а):
pavia писал(а):
Вы видимо смайлик забыли. php версии с 3 компилируемый. Javascript тоже, давно компилируется.

Они (и вы) можете сколько угодно вешать лапшу на уши, но я человек старой школы, и для меня компилируемый язык -- это из которого можно получать exe-файлы, содержащие машинный код, поэтому даже .NET пока не считается

Попробуй в VS скомпилирвать в конфигурации Release, получишь машинный код. Просто он такой, как сказал Bargest - мягко говоря, не очень оптимальный. Интересно ещё на Mono посмотреть, не должны же они всю гадость копировать.


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

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


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

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


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

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