Рубрика «Pascal» - 5

Привет всем.

Начну с того, что на днях пришла рассылка по Delphi и RAD Studio XE4, в которой Delphi декларируется как мультиплатформенное средство для быстрой разработки для компьютеров, ноутбуков, планшетов и мобильных устройств, включая MAC, iPhone, iPAD, также у Embarcadero есть планы сделать поддержку мобильной платформы Android.

Delphi и FreePascal — это Паскаль сегодня. Один из моих любимейших языков программирования. Язык прошёл долгий путь от “игрушки для учёных” до мощнейшего универсального средства разработки, на котором сделаны великолепные проекты, например, Total Commander.

Построенное на здравых решениях, ядро языка Паскаль легко поддалось усовершенствованию и умощнению и пригодно для широчайшего класса практических задач. В России Delphi особенно популярен и всё ещё широко используется. Однако развитие языка идёт по принципу наращивания возможностей, и постепенно Delphi становится всё более громоздким, догоняя по сложности таких монстров как PL/1, C++ и Ada. С большой вероятностью мы можем предположить, что проще язык становиться не будет, ибо нужно поддерживать совместимость с накопившейся базой исходников и т.д. В конце концов такая стратегия развития неизбежно приведёт к трудностям, когда сложность уже невозможно будет контролировать.

В то же время есть язык программирования, получившийся за несколько десятилетий практического преподавания и решения различных задач путём методического и последовательного уточнения Паскаля. Это Оберон — самый красивый из всех минималистичных языков, о котором мало кто слышал. Я смело утверждаю: Паскаль сегодня — это не только Дельфи (полученный методом наращивания), но и Оберон-2 / Компонентный Паскаль (полученные методом отбрасывания, пересмотра и уточнения целесообразности тех или иных средств). Благодаря тому, что над автором языка не довлела необходимость совместимости, он особенно на эту тему и не парился. И получившийся в итоге язык — цельный, компактный, мощный, кроссплатформенный в широком смысле (включая не только современные платформы, но и Amiga, и даже Atari). На Компонентном Паскале я успешно разработал мидлет для Java micro edition, не предвижу трудностей и в разработке для Android. Кроме одной: отсутствие инфраструктуры, да и вообще о таком использовании Оберонов мало кто знает.

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

Вирт всегда считал правильным конструировать процессоры под языки, а не наоборот. Но, несмотря на это, Оберон-программы хорошо конвертируются в Си, Java, работают как на нативе, так и на .NET/JVM. Разрабатывается компилятор GPCP для LLVM. Мне принадлежит идея ZXDev — среды разработки на Обероне-2 для восьмибитного процессора Z80 и компьютера ZX Spectrum. Самая новая ревизия виртовского Оберона называется Oberon-07. Он ещё меньше по размеру, чем Оберон-2, и адаптирован для ARM-процессоров и архитектур большой разрядности. Вот такое направление развития Паскаля. Малоизвестное широким массам программистов, но красивое как произведение искусства. Уже более семи лет я активно применяю Оберон-технологии с пользой для своей деятельности, и программировать на чём-то другом уже мало хочется.
Читать полностью »

Предыстория: моя жена постоянно норовить как-нибудь мне напортачить: поставить будильник на 3 часа ночи, поменять мелодию звонка, снести настройки синхронизации, удалить свою смс и потом доказывать, что она этого не говорила.
Шутки шутками, но в какой-то момент я решил: “Довольно!” — и поставил графический пароль на свой Андройд.

Уязвимость графического пароля

Жена усмехнулась и сказала, что подберёт. Я посмеялся в ответ, на том и разошлись. Только теперь её волновал вопрос, как подобрать, а меня какова вероятность этого события.
Читать полностью »

Пост ностальгии по игрушкам, которые мы сами для себя писали в детстве.
Лазая по просторам App Store ища очередную игрушку для своего айпада, наткнулся на старинную игрушку “Братья Пилоты”. Сразу купил, поставил и прошёл на одном дыхании (уже наверное в 3 раз). Но более всего задержался на эпизоде с холодильником. Уж больно меня прёт эта головоломка.

Первая игра, которую я просто написал для себя

И внезапно вспомнил, что ещё в школьные годы, после прохождения холодильника, головоломка меня так накрыла, что я написал на паскале свою собственную игрушку — эмулятор головоломки. Но не просто повторяла исходную игру, а позволяла выбирать размер поля, имела хелп, возможность сохранения и продолжения игры с прошлого места после выхода.

Подняв старые бекапы я нашёл исходную игру. Запустил её в dosbox и пропал для внешнего мира на пару часов.
Читать полностью »

Баллада о Turbo Pascal или 20 лет без перемен

    Тихо и незаметно прошла первая неделя нового учебного года. Хоть я уже и давно закончил школу, а своих детей школьного возраста пока нет, я все равно волей-неволей задумываюсь о начале учебного года. И вызвано это отнюдь не засильем детей в школьной форме на улицах: я очень редко выхожу из дома.
    Причина, из-за которой я вспоминаю, что началась осень довольно необычна — я замечаю на форуме моей локальной сети свежую тему, кочующую из года в год, всплывающую порой в самых неожиданных разделах этого форума. Если сформулировать эту тему, то получится всего 4 слова, отражающих всю безысходность ситуации с компьютерным образованием на просторах бывшего СССР, звучит она так: «Где взять Turbo Pascal?»
Читать полностью »

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

Так в комментариях к недавней теме «Lazarus 1.0 увидел свет!» были высказаны некоторые неверные утверждения, а также задан ряд вопросов оставшихся без ответов. Являясь разработчиком Lazarus и FPC уже довольно продолжительное время, я могу и хочу дать ответ на большинство связанных с этими продуктами вопросов и развеять некоторые неверные предположения.

Утверждение: Размер исполняемых файлов оставляет желать лучшего. Виноват компилятор, компоновщик и др.
Читать полностью »

Lazarus 1.0 увидел свет! В то время как поклонники и ненавистники Delphi ломают копья по поводу, недавно анонсированной, версии XE3, ребята из команды Lazarus 29 августа объявили о выходе Lazarus 1.0.

Для тех кто не в курсе, Lazarus — это IDE и набор классов для FreePascal, который эмулируют Delphi. Проект был открыт в далеком 1999 году усилиями трёх разработчиков: Cliff Baeseman, Shane Miller и Michael A. Hess. История более детально описана в Wiki.
Читать полностью »

Работа с объектами СУБД Caché на примере Delphi
Несмотря на перманентные похороны Delphi, эта платформа построения Desktop приложений живет и здравствует, а со сменой владельца даже обретает второе дыхание и продолжает оставаться основным инструментом для тысяч разработчиков во всем мире.
Как и с любыми СУБД Delphi прекрасно взаимодействует с СУБД Caché.

Из Delphi можно подключиться к Caché, используя следующие интерфейсы:

В данной статье будут рассмотрены примеры использования объектного интерфейса при работе с СУБД Caché.
Читать полностью »

Наливайте чай, доставайте печеньки. Надолго я вас задерживать не буду.

Введение

Как известно, для обучения программированию очень часто используют язык Pascal, потому что этот язык программирования позволяет наиболее легко понять основные структуры, используемые во всех языка программирования. Причем не только в школах, но и в СУЗах и даже ВУЗах. Изучая возможности этого языка на протяжении довольно длительного времени (около 3х лет) и в различных средах (от Borlad Pascal до Pascal ABC) перед переходом к изучению других языков программирования я задался целью реализовать большую часть возможностей языка Pascal в одной программе. Читать полностью »

Алгоритмы / [Из песочницы] Алгоритм Шеннона-Фано
Алгоритм метода Шеннона-Фано один из первых алгоритмов сжатия, который впервые сформулировали американские учёные Шеннон и Фано и имеет большое сходство с алгоритмом Хаффмана. Алгоритм основан на частоте повторения. Так часто встречающийся символ кодируется кодом меньшей длины, а редко встречающийся — кодом большей длины.
В свою очередь коды полученные при кодировании, префиксные. Это и позволяет однозначно декодировать любую последовательность кодовых слов. Но все это вступление.
Для работы оба алгоритма должны иметь таблицу частот для элементов алфавита.
Итак, алгоритм Хаффмана работает следующим образом:
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js