Болталка PascalABC.NET

Конечно не буду! Как может точное механическое устройство, имеющее подвижные части, “любить” тряску?

Ну вот и договорились! :wink:

серьёзно, 100 сообщений)))

Вчера рекорд - завтра норма! :smile:

Глядишь, скоро “болталка” больше “Замечания и предложения” будет.

Сообщение перенесено в тему Помощь новичкам

Если бы его таланты и познания этим ограничивались, он бы не получил еще в молодости подпольную кличку Сталин (хотя их много было разных, но вот прижилась именно эта), а так и остался бы просто Джугашвили, сыном сапожника… :slight_smile:

1 лайк

Вот именно! Русскоязычная аббревиатура ПЗУ – очень древний термин и изначально обозначал совершенно однозначные по тем временам вещи: электронные компоненты памяти (чаще всего в виде отдельных микросхем или их наборов) или внутренние модули (отдельные платы блочных устройств), являющиеся неотъемлемой частью архитектуры некого более сложного устройства, работающие при этом по его внутренним интерфейсам и предназначенные для использования в режиме однажды записано – много раз регулярно считывается.

Запись при этом, что немаловажно, делалась на совсем другом оборудовании (программаторах, или вообще механически), т.к. электрически стираемые перепрограммируемые микросхемы памяти (EEPROM), чипы Dallas, а тем более NOR-flash и NAND-flash технологии исторически появились гораздо позже, и для них уже вводились более специфические термины, типа ЭСППЗУ и им подобные (не особо прижились).

Все прочие устройства хранения данных, подключаемые к внешним шинам и интерфейсам, типа НЖМД, ленточные накопители, устройства ввода/вывода на перфокарты и т.п., классифицировались как внешние или периферийные и никак не относились к ПЗУ (даже имея при этом одноразовую запись и возможность затем длительного хранения и регулярного чтения данных, как напр., перфоленты). С тех пор простой термин ПЗУ сильно устарел и плохо применим для четкой классификации современных видов памяти и устройств хранения данных на них. Более общий и корректный термин ныне – энергонезависимая память (Non-volatile memory).

На практике сейчас:

  • если это сменный носитель или же изделие, предназначенное для временного хранения или переноса данных между разными устройствами, то это не ПЗУ (напр., флэшки/HDD на USB, карты памяти, CD/DVD-диски и записываемые матрицы и т.п.);
  • если даже это внутреннее фиксированное устройство, предназначенное для длительного хранения, но частой перезаписи (внутренние HDD), то это тоже не ПЗУ;
  • если это микросхема (а не отдельное устройство!) с энергонезависимой памятью типа NOR-Flash или NAND-Flash, интегрированная в изделие и предназначенная для хранения очень редко изменяемых в нем данных (напр., микропрограммы или заводского профиля настроек, калибровочных параметров и т.п.), то это можно считать ПЗУ (с некоторой натяжкой).

Значит, по-Вашему, ПЗУ уже не существует. А ОЗУ? Или теперь все данные хранятся в другом измерении? :face_with_monocle:

Коба он был… А Сталина, насколько я помню, сам себе придумал, как Говард “рокетмена” в “Теории большого взрыва”. Ну и в последующие времена товарищи не осмелились перечить, Кобу забыли…

Почему не существуют? :roll_eyes: Существуют, конечно – как интегрированные компоненты устр-ва, являющиеся неотъемлемой частью его архитектуры и адресного пространства, т.е. без которых оно (устр-во) нормально работать не сможет.

Подготовил демку, показывающую, на сколько сильно проверка индексов массива замедляет работу с ним. Так как Паскаль что-то мудрит с указателями, код написан на C#. В неуправляемом блоке с указателями обработка занимает более чем в 2.2 раза меньше времени.Compile.bat (116 Байты) Test.cs (486 Байты) Test.exe (4 КБ)

Должен сказать, что разработчики CLR ушли гораздо дальше, чем разработчики .NET Framework. Видел данные, согласно которым, правильно написанное приложение на C# по скорости уступает C++ лишь 2-4%.

Ну, это смотря что считать правильным. Вроде можно ещё делать вставки из асемблера или IL, прямо в коде. Тогда точно уступать C++ оно по производительности не будет)))

Но я то имел ввиду, что оно по-честному написано на C#. То есть никакого ассемблера или IL никуда не вставляется.

Скорее всего всё-таки будет. На 0.5%. Ведь CLR компилирует код в процессе выполнения, а на это тратятся ресурсы.

Да, но оно компилирует его 1 раз, при первой попытке выполнить что то из него. То есть по сути производительность тут нужна не на выполнение а на загрузку.

Да, да – а дедушка Ленин на субботнике бревна таскал и позировал, а свой сахар детям раздавал :slight_smile: Так было написано и нарисовано в советских детских книжках.

По более достоверным источникам у Джугашвили были десятки различных кличек и имен во времена его подпольной политической деятельности, и не важно кто их придумывал (хотя этого мы все равно уже никогда точно не узнаем). А вот именно Сталин закрепилось, думаю, не случайно – уж больно соответствовало его суровому характеру и несгибаемой воле.

Я говорил суммарно. А суммарно это и получается меньше 0.5%.

Парни, да перестаньте вы уже соревноваться в своих фантазиях с С++… :biking_man: Он всегда будет быстрее при прочих равных! :motorcycle: Иногда на 0,5%, иногда на 1000% – просто потому, что этот инструмент в руках квалифицированного и опытного разработчика позволяет делать очень тонкие и высокоэффективные низкоуровневые оптимизации для максимального использования возможностей конкретного железа и ОС. А еще потому, что у него нет издержек от виртуальной среды исполнения (CLR) и управляемой памяти с её малопредсказуемым сборщиком мусора.

Хотя, разумеется, граната в руках обезьяны (c++ в руках г*внокодера) может легко давать и обратный результат… :slight_smile:

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