Перейти к содержимому

21

Имя языка программирования СИМУЛА (SIMULA) происходит от английских слов SIMUlation LANguage, что в переводе означает "язык моделирования".

В принципе этим именем называют два языка программирования: СИМУЛА-1 и СИМУЛА-67. Оба языка основываются на языке АЛГОЛ-60 и содержат последний в качестве своего подмножества.
...читать далее "Язык программирования Симула"

32

РОБИК -- учебный язык программирования, предназначенный для младших школьников. Разработан в начале 80-х годов в СССР. Робик построен на основе русской лексики (использует предписания, близкие к предложениям русского языка). В языке важную роль играет понятие исполнителя - гипотетического объекта, действующего в некоторой среде и имеющего свою систему предписаний (обычно модель реального объекта, известного учащемуся).

//Математический энциклопедический словарь

35

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

//Математический энциклопедический словарь.

3

Язык программирования ПРОЛОГ (PROLOG) создан во Франции в Марсельском университете в 1971 году. Его разработал Ален Кольмеро (Colmerauer - его фамилию по-разному переводят на русский язык).
...читать далее "Язык программирования Пролог"

14

В октябре 1963 г. представители фирм IBM и SHARP образовали Комитет под представительством Б. Розенблата и Дж. Радина по созданию совершенного языка программирования. Предполагалось создать такой язык, который сможет удовлетворить различные классы пользователей, решающих как научные, так и коммерческие (экономические), а также специальные задачи. В результате разработки эффективного "единственного" языка программирования ожидалось, что отпадет необходимость в таких языках, как ФОРТРАН, КОБОЛ и др.
...читать далее "Язык программирования PL/1"

4

В кои веки решил заапгрейдится на версии aclocal/automake/autoconf посвежее, но в процессе выполнения aclocal новой версии получил вот такое сообщение об ошибке:

Can't locate object method "path" via package "Request" at /usr/local/share/autoconf259/Autom4te/C4che.pm line 69, line 94.
aclocal: autom4te259 failed with exit status: 1

Решение простое: нужно удалить директорию autom4te.cache 🙂

Добавка: Если на FreeBSD вам попадется сообщение


src/Makefile.am:18: Libtool library used but `LIBTOOL' is undefined
src/Makefile.am:18:
src/Makefile.am:18: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
src/Makefile.am:18: to `configure.in' and run `aclocal' and `autoconf' again.

То временным решением слежит


cd /usr/local/share/aclocal19
ln -s ../aclocal/libtool15.m4 .
ln -s ../aclocal/ltdl15.m4 .

2

Обнаружил, что нижеследующий код корректно исполняется в perl 5.8.5, но некорректно исполняется в perl 5.8.0:


sub StrToNum {
    my ($Str, $Check, $Magic) = @_;
    my $len = length($Str);

    for (my $i = 0; $i < $len; $i++) {
        $Check *= $Magic;
        $Check &= 0xFFFFFFFF;
        $Check += ord(substr($Str, $i, 1));
    }
    return $Check;
}

Решение для perl 5.8.0:


sub StrToNum {
    my ($Str, $pCheck, $pMagic) = @_;
    my $len = length($Str);
    $Check = Math::BigInt->new($pCheck);
    $Magic = Math::BigInt->new($pMagic);

    for (my $i = 0; $i < $len; $i++) {
        $Check *= $Magic;
        $Check &= 0xFFFFFFFF;
        $Check += ord(substr($Str, $i, 1));
    }
    return $Check;
}

42

Язык программирования ПАСКАЛЬ (PASCAL) получил свое название не от сокращения каких-то слов, как другие языки: он назван так в честь великого французского математика и физика Блеза Паскаля, который в 1642 г. изобрел счетную машину для арифметических операций - паскалево колесо, как назвали её современники.
...читать далее "Язык программирования ПАСКАЛЬ"

11

Язык программирования Оберон появился в результате работы над проектом, целью которого была разработка современной, гибкой и эффективной операционной системы для рабочей станции, рассчитанной на одного пользователя. Принципиальная установка была сделана на то, чтобы сосредоточиться на действительно важных свойствах и - как следствие - не затрагивать эфемерных проблем. Это наилучший способ удержать систему в руках, сделать ее понятной, объяснимой, надежной и эффективно реализуемой.
...читать далее "Язык программирования Оберон"

32

Модула-2 -- потомок Паскаля и экспериментального языка Н.Вирта, разработанного примерно в 1975 г. и названного Модула. Здесь сказалось влияние опыта работы Вирта с языком Меза в Исследовательском центре фирмы Xerox в Пало-Альто (США) в 1976 г. Разработка Модулы-2 началась в 1977 г., и язык был впервые реализован на мини-ЭВМ PDP-11 в 1979 г.

Основные части языка, в которых Модула-2 усовершенствован по сравнению с Паскалем, следующие:

  • упрощение грамматических правил;
  • возможность разбивать большие программы на маленькие, называемые модулями;
  • возможность программирования с помощью языковых средств низкого уровня, подобных тем, которые требуются для разработки операционных систем ЭВМ;
  • обеспечение мультипрограммирования.

В общем, Модула-2 - богатый и выразительный язык. Он позволяет представлять отношения и понятия программирования, недоступные во многих других языках.

Язык программирования Модула-2 относится к машинно-независимым языкам, так что одна и та же программа, написанная на Модуле-2, может без переписывания выполняться на ЭВМ совершенно различных типов. Обычно машинно-независимые языки могут применяться только для задач программирования высокого уровня или общего характера, таких как задачи бухгалтерского учета и расчета заработанной платы. Однако Модула-2 может применяться и для программирования на языковых средствах низкого уровня. Например, Вирт применил Модулу-2 для написания полной операционной системы для мини-ЭВМ Lilith.

Большинство языков нельзя применять для написания операционных систем, поскольку для этого требуются операции с информацией машинного уровня, уникальной для конкретной ЭВМ. Модула-2 позволяет описать любое действие, которое можно описать на машинном языке конкретной ЭВМ. Эта цель достигается с помощью модулей, используемых, чтобы скрыть детали программы, различные для ЭВМ различных типов. Таким образом, бОльшую часть программы оказывается возможным переносить с одной ЭВМ на другую.

Большинство языков программирования позволяет выполнять одновременно только одно задание. Однако в некоторых прикладных задачах, таких как заказ билетов на самолеты, программа одновременно должна выполнять много действий. Один клиент отменяет заказ, тогда как другой получает посадочный талон. Возможность выполнения действий называется параллельной обработкой , и язык Модула-2 - один из немногих языков, содержащих команды для описания таких операций.

Абстракция данных и скрытие информации - современные концепции программирования, помогающие уменьшить сложность программ и повысить их надежность. Конкретные детали организации данных на диске определяют программисты, создающие операционную систему конкретной ЭВМ. Эти детали скрыты в некотором модуле и могут быть различными для различных ЭВМ. Этот факт не оказывает отрицательного влияния на пользователя. Все, что нужно пользователю, -- это процедура высокого уровня для выполнения задач ввода-вывода с диска, например Open(имя файла), Read(два блока, имя файла).

Последней характерной чертой Модулы-2 является раздельная компиляция, позволяющая разрабатывать и хранить в библиотеках программы, которые можно использовать повторно. Библиотечные модули делятся на часть, связанную с определением и видимую для пользователя, и реализующую часть, которую видит только программист. Часть, связанная с определением, - это все, что необходимо для компиляции пользовательских программ. Реализующая часть содержит конкретные прикладные программы, выполняющие требуемые функции. Пользовательские программы, модули определения и модули реализации компилируются отдельно друг от друга. (Контроль и проверка версии осуществляется системой.) В реализующую часть библиотечных программ можно вносить изменения, не влияя на программы, а тем самым и на пользователей. Этот подход и концепции абстракции и скрытия информации используются совместно и согласованно.