Болталка PascalABC.NET

Они дважды неправы. Во-первых, Конституция РФ гарантирует право на свободу мысли и слова, а никак не право писать, что думаешь. Во-вторых, свобода слова, как и любая другая свобода, ограничена. Вот в википедии по соответствующей статье: “На сегодняшний день среди легитимных ограничений числятся защита … репутации и прав других лиц”.

Я, конечно, понимаю, что для “защиты” попросят обращаться в суд и там свои прелести. Но всё-таки говорить о том, что Конституция разрешает любые глупости и хамство – это чересчур…

Про Delphi такая история вспоминается. Лет несколько (5-6?) назад в университете проводили областной этап всероса по программированию. Тогда ещё многие писали в упомянутой среде. Решили сделать по закону и попросили ключики. Прислали ключи с действием три дня :slight_smile:

Последний это который две недели назад? Там до этого с багами постоянно шли, я их даже переустанавливать не стал. Тот что две недели назад после некоторой нервотрёпки с менеджером лицензий установился. Проверил, вроде работает, правда 4 Мб на форму с окошком …

Дельфи ведь уже не поддерживается?

Он стал чем-то вроде опенсорсного проекта. Каждый пишет что хочет и никто ни за что не отвечает. В общем, “Кто не спрятался - Делфи не виноват!” ))

Ссылочу на исходники можно?

А вот интересно, MSIL-код программ - это ведь, по сути, почти ассемблер. Возможно ли писать вручную код, как на обычном ассемблере? P. S. Где-то читал, что Н. Вирт реализовал компилятор Паскаля как раз в код ассемблера, чтобы можно было на разных компьютерах программы запускать. Получается, что Паскаль изначально был .NET - языком :slight_smile:

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

Ассемблер – ортогональное понятие к .NET. В общем виде язык ассемблера – это ничто иное как мнемоническое представление системы команд процессора определенной архитектуры (или, в более абстрактном случае, среды исполнения), т.е. у процессоров разной архитектуры (или с неполностью совместимым набором команд) по сути – разный язык ассемблера.

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

Для системы команд виртуальной среды исполнения CLR – двоичного MSIL-кода (a.k.a. IL или CIL) – есть свой мнемонический IL-ассемблер, который также можно транслировать из текстового файла *.il в бинарную исполнимую сборку *.exe или *.dll для .NET/Mono с помощью утилиты ilasm.exe. Но пытаться писать таким образом программы под .NET руками… это надо быть редким мазохистом!

Язык ассемблера для любой невиртуальной архитектуры не является переносимым (portable), поэтому Вирт мог транслировать Паскаль в ассемблер только с одной целью – для ручной оптимизации своего компилятора (видимо, тогда было совсем туго с дебаггерами и дизассемблерами), но никак не для лучшей совместимости с другими платформами. Для этого обычно транслируют в portable C.

1 лайк

Ну так я же не сказал, что буду этим заниматься :smile:

Может быть, но там было написано именно о мультиплатформенности. Может быть, кстати, что там была виртуальная машина, вроде бы там что-то такое было.

Где там?

Не помню точно, в какой-то статье.

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

Тут, кстати, важно разделять понятие чисто аппаратной архитектуры, т.е. “железа”, и отдельно ОС как платформы и системной платформы, т.е. полной программно-аппаратной среды исполнения, куда входит уже как сама ОС, так и архитектура + система команд процессора, и его аппаратное окружение (работающие с ним в связке шины, мосты, контроллеры, память, внутренняя и внешняя совместимая периферия, и пр.).

Кроме того, есть еще нюансы с поддержкой (даже в рамках одного и того же процессора) различных режимов битности, endianness, расширенных наборов SIMD-инструкций и разной другой специфики.

1 лайк

Это версия ещё чуть ли не самого Вирта. Она была рабочая, но предназначалась для обучения программированию студентов.

Какой размер множества в паскале абц? Что-то не нашел такой информации в справке. Например хочу создать множество set of integer и записать туда миллиард элементов, не получается, даже 100 миллионов не дает.

Множество - это лишь обёртка обычного массива. Ограничение по количеству элементов даёт ваша операционка, когда RAM не хватает (или винда считает что это не правильно, выделять так много памяти за раз) - вам даёт ошибку.

А для чего вообще вам множество из миллиарда элементов? Возможно, для того что вы делаете - есть способ получше.

Так это памяти не хватило? А динамический массив тоже ограничивается только динамической памятью? Вообще то я задачки решаю пока, там элементы из массивов в множества закидаю вот попадаются такие вопросы.

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

Приведите несколько примеров. Я себе не могу представить чтоб в каком то задачнике дали задание с массивом из больше 100 элементов)).

Та не, это я сам себе такие вопросы задаю, а что будет если… и так далее. И когда не могу найти ответа, то у вас спрашиваю. А так то таких задач там нет, конечно. Вот же в турбо-паскале там было ограничение на множества и на массивы, и на строки, а тут ничего не написано о таких вещах.

Понятно, ну, я примерно так же учился… Что ж, тогда удачи)

Вы там поосторожнее с этими скаутскими замашками. В народе не зря есть пословица: “Один дурак может задать столько вопросов, что и девяносто девять умных не ответят”. Это, понятное дело, лишь пословица, я не имею в виду кого-либо конкретно, но помнить о ней все же полезно каждому.