Криптонит. Разработка, наука, шифрование
1.87K subscribers
807 photos
50 videos
479 links
Канал IT-компании «Криптонит».
Рассказываем про:
•работу с Big Data на основе AI, ML, шифрования
•разработку и языки программирования
•математику и криптографию

На связи @OBogolyubskaya_official
Присоединяйтесь к нам: https://career.kryptonite.ru/
Download Telegram
В понедельник мы вам рассказывали про первый компьютер в Европе Z4. Его программировали с помощью одного из первых языков высокого уровня Планкалкюль (Plankalkül). Про него мы сейчас и поговорим.

Это первый пост из новой рубрики #ИЯП — история языков программирования. Если хотите больше постов на эту тему, ждём от вас ❤️ под этой публикацией.

Что такое Планкалкюль?

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

К сороковым годам XX века между ЭВМ стала наблюдаться преемственность. На базе ранних моделей появлялись подобные им усовершенствованные версии, обладавшие сходными чертами. Возникла необходимость переносить типовые вычисления с одних компьютеров на другие.

📍В 1944 г. в качестве смелой идеи из области прикладной математики немецкий инженер Конрад Эрнест Отто Цузе написал первый универсальный язык программирования — Планкалкюль (Plankalkül), что в переводе означает «планируемые вычисления».

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

Первым устройством, на котором использовался Планкалкюль, был электромеханический компьютер Z4, наследовавший архитектуру своего предшественника — Z3.
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаем знакомиться с языками программирования прошлого. Ниже рассказываем про ПП-1 и про то, как начиналось советское программирование.

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

Переход от машинных кодов к языкам высокого уровня стал возможен благодаря разработке методов структурного представления алгоритмов и автоматизации самого процесса написания программ.

📌Одним из основоположников отечественной кибернетики и теоретического программирования был математик Алексей Андреевич Ляпунов.

Ещё в начале пятидесятых годов он предложил операторный метод описания программ и разработал теорию синтаксических программных структур.

Под руководством Алексея Ляпунова в 1954 году в Институте математики АН СССР был написан первый советский транслятор — ПП-1, или «программирующая программа номер 1». Она вызвала большой интерес со стороны высшего руководства страны и получила статус приоритетной разработки.

Уже в 1956 году на её базе создали «ПП-2» — первый в мире транслятор с загрузчиком, отладчиком и библиотекой основных процедур. Он использовался на засекреченной ЭВМ «Стрела», установленной в Вычислительном центре Минобороны СССР.

Об этой уникальной машине мы расскажем в одном из наши следующих выпусков. #ИЯП
Знаете, какой язык высокого уровня был одним из первых и дошёл до наших дней? Fortran — про него новый выпуск истории языков программирования. #ИЯП

📍Название Fortran является акронимом от FORmula TRANslating System — система трансляции формул. Он был разработан сотрудником IBM Джоном Бэкусом в 1954-1957 годах.

Ключевая идея Бэкуса была в том, что последовательности вычислений нужно записывать не в машинных кодах, а как вызовы типовых подпрограмм. При этом сами подпрограммы появились только в FORTRAN II вместе с поддержкой процедурного программирования в 1958 году. Для этого Бэкус и трое его коллег из IBM разработали символическую систему записи математических расчётов, сделав акцент на циклические выражения.

🗄Другие важные особенности Fortran — встроенная поддержка параллельных вычислений и векторных операций. Поэтому Fortran до сих пор актуален, особенно в сфере высокопроизводительных вычислений (HPC). В частности, тесты для рейтинга TOP 500 самых быстрых суперкомпьютеров мира написаны на Fortran.

Ещё одна причина сохраняющейся актуальности языка — простота операций над большими массивами и компиляция в эффективный двоичный код. На Fortran пишут библиотеки математических функций (см. IMSL Fortran Numerical Libraries), ПО для решения инженерных и научных задач, специфический софт для Big Data и бизнес-аналитики.

Актуальная сегодня версия Fortran стандартизирована в 2018 году. Следующий стандарт Fortran 202x находится в разработке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня рассказываем про COBOL (COmmon Business Oriented Language) — один из первых языков программирования, инструкции которого записывались английскими словами (OPEN, SELECT, ASSIGN…) и были легко читаемы. Это новый пост из нашей рубрики #ИЯП

📍Он был создан в 1959 году комитетом CODASYL по разработке универсального языка программирования для коммерческих систем.

С тех пор стандарт COBOL пересматривался пять раз. Последний был принят в 2023 году (ISO/IEC 1989:2023). Парадокс в том, что сейчас это умирающий язык, от которого, тем не менее, зависят ключевые бизнес-процессы современного общества.

⚡️Написанные на COBOL программы работают исключительно быстро. Уже в семидесятых годах они могли обрабатывать миллионы транзакций в час. В отличие от Ассемблера, их было проще дорабатывать и переносить на компьютеры разных архитектур. Это стало ключевым свойством для развития банковской сферы, розничной торговли, логистики и множества других сфер. Именно благодаря COBOL компьютеры стали популярны в бизнесе и государственном секторе.

В США, Канаде, Мексике и десятках стран поменьше на COBOL до сих пор работают многие высоконагруженные бэкенды: для налоговой службы и пенсионного фонда, биржевых торгов, учёта медицинской статистики, инвентаризации армейского имущества, обработки финансовых транзакций, управления морским, железнодорожным и авиатранспортом... Совокупно это сотни миллиардов строк кода, который сегодня уже мало кто может поддерживать.

📌Ветераны COBOL давно ушли на пенсию (или вовсе покинули этот мир), а новые кадры нанимать всё сложнее. Если на заре программирования COBOL привлекал простотой синтаксиса, то сейчас у него относительно высокий порог входа. Вдобавок, у COBOL нет активного профессионального сообщества и его не преподают в вузах, поэтому он выглядит куда менее привлекательно для изучения, чем C++, Java и другие современные языки.

С 2020 года IBM разрабатывает помощник на основе искусственного интеллекта, который помог бы переписать код с COBOL на Java. Проблема в том, что даже с ним остаётся колоссальное количество ручной работы и требуются многочисленные проверки. Код на COBOL «вылизывали» полвека, и его можно считать образцом стабильности. Как поведут себя переписанные программы в столь ответственных областях — трудно предугадать, а цена ошибки слишком велика.
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня рассказываем про программирующую программу Ершова, которая оказала сильное влияние на школу информатики. Это история языков программирования. #ИЯП

Работу над первым в мире самодостаточным транслятором ПП-1 Алексея Андреевича Ляпунова продолжил его ученик Андрей Петрович Ершов.

❗️В 1958 году Ершов написал монографию «Программирующая программа для быстродействующей электронной счётной машины». Она повлияла не только на отечественную, но и на западную школу информатики.

Будущий американский мэтр системного программирования Дональд Кнут изучал монографию Ершова на русском языке, когда сам был студентом.

Вскоре монография была издана за рубежом на разных языках. Её высоко оценили Джон Бэкус, Грейс Хоппер, Джон Маккарти и другие пионеры в области теоретического программирования. Фактически это был первый академический труд по автоматизации процесса создания программ и их переноса на разные архитектуры.

Монография описывала транслятор для БЭСМ и «Стрелы», в котором были реализованы новаторские подходы.

📍Ершов самостоятельно разработал принцип адресной кодировки объектов и описал «способ бесперебойного поиска информации по ключу с помощью функции расстановки». Сегодня мы чаще называем её функцией хеширования, применяя, в частности, для индексации массивов данных.

📌Андрей Петрович исследовал статистические свойства таких функций, а затем использовал их для оптимизации кода путём сокращения числа команд и экономии памяти. Позже под руководством Ершова были созданы целые системы оптимизации «АЛЬФА» и «БЕТА», предопределившие методологию оптимизирующей трансляции.
Please open Telegram to view this post
VIEW IN TELEGRAM
В этом посте знакомимся сразу с тремя языками программирования XX века: Алгол, Алмир и Аналитик. #ИЯП

📍В 1958 году Международная федерация по обработке информации (IFIP) разработала процедурный язык программирования Алгол. В Европе он составил конкуренцию американскому Фортрану, а в СССР стал основой для написания собственного высокоуровневого языка.

Такой язык с кириллическими операторами («ЕСЛИ», «ТО») и указателями формата вывода («МАССИВ», «ГРАФИК») был создан к 1965-му году коллективом под руководством В. М. Глушкова — советского академика, спроектировавшего первую в СССР персональную ЭВМ «МИР-1».

❗️Язык получил название «АЛМИР-65» и применялся для описания инженерно-технических расчётов, производимых на «МИР-1». Он был удобен тем, что позволял использовать русскоязычные слова и привычные обозначения математических функций: EXP(X), SIN(X), ARCCOS(X), LN(X) и др.

Более того, «АЛМИР-65» поддерживал два формата ввода действительных чисел: с фиксированной и плавающей точкой, допуская различные вольности. Например, можно было не указывать нулевую целую часть и знак «+» у мантиссы.

📌Для следующей ЭВМ «МИР-2» было разработано расширение языка АЛМИР-65 под названием «Аналитик». В нём появились аналитические преобразования (откуда и название), а также абстрактные типы данных и сложные арифметические выражения с условиями.

Интересно, что для ввода данных в «Аналитике» использовался объединённый алфавит из 31 кириллической и 14 латинских заглавных букв. Это позволило сделать сравнительно компактную клавиатуру, в которой буквы занимали всего 45 клавиш. Ещё 10 приходилось на цифры, а остальные клавиши кодировали математические символы и управляющие знаки.

На завершившей серию ЭВМ «МИР-3» применялся ещё более развитый вариант языка «АНАЛИТИК-74». Доктор технических наук Лев Александрович Осипов называл его «наиболее естественным из существующих алгоритмических языков».
Please open Telegram to view this post
VIEW IN TELEGRAM
Эль-76 — язык программирования высокого уровня, с которым мы хотим вас сегодня познакомить.

Это уже восьмой выпуск рубрики «история языков программирования». Мы собираем библиотеку из языков XX века по тэгу #ИЯП — загляните😉

📍«Эль-76» был написан коллективом ИТМиВТ под руководством Владимира Мстиславовича Пентковского, позже работавшего в Intel над серией процессоров Pentium.

Вместе со специалистами в области высокопроизводительных вычислений Всеволодом Сергеевичем Бурцевым и Борисом Арташесовичом Бабаяном он принимал участие в создании серии супер-ЭВМ «Эльбрус» и уникального языка для неё.

❗️Изначально этот язык называли «автокодом», поскольку для «Эльбрусов» он был нативным, а все остальные программы транслировались в него. Однако по своей структуре «Эль-76» — типичный язык высокого уровня, созданный в соответствии с парадигмой структурного программирования. Он поддерживал использование условных переходов, создание циклов, обработку исключений и встроенные типы данных.

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

Написание программ на «Эль-76» облегчалось использованием русскоязычных команд: «начало», «если», «иначе», «конец» и другими. На «Эль-76» были написаны программы для самых ответственных задач, включая обеспечения работы Центра управления полётами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Одни языки программирования способствуют появлению других. Мы уже писали про долгожителей FORTRAN и COBOL, а сегодня расскажем о связавшем их языке COMTRAN. #ИЯП

❗️Его название представляет собой акроним от COMmercial TRANslator. Это один из первых бизнес-ориентированных языков программирования. Его разработали в IBM под руководством Роберта Бемера, больше известного как «отец ASCII». Первые спецификации COMTRAN опубликовали в 1957 году.

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

Поэтому для удобства чтения исходного кода в COMTRAN было введено разделение листинга на параграфы, причём каждому параграфу присваивалось своё имя. По этим именам можно было выполнять условные (IF… THEN) и безусловные (GO TO) переходы.

📌Также в COMTRAN впервые появился элемент picture clause — побайтовое определение формата переменной. Он описывает общие характеристики и требования к редактированию элемента данных, который в COMTRAN может быть числовым или буквенно-цифровым.

В частности, picture clause использовался в программах для печати финансовых документов, на страницах которых перед каждой денежной суммой требовалось ставить знак $, а задолженность указывать со знаком «-».
Please open Telegram to view this post
VIEW IN TELEGRAM
RPG — это не только игры! Рассказываем историю этого языка программирования.

📌Сегодня аббревиатура RPG прочно ассоциируется с компьютерным ролевыми играми. Между тем, это ещё и Report Program Generator — уникальный язык программирования, который появился в 1959 году и до сих пор сохраняет актуальность.

Изначально RPG был написан для IBM 1401 — одного из первых транзисторных компьютеров, созданного для решения бизнес-ориентированных задач. В 60-е годы XX века было выпущено свыше 10 тысяч мейнфреймов IBM 1401, которые могли арендовать даже малые предприятия.

🔵До IBM 1401 с этой же целью использовались электромеханические табуляторы, у которых был свой специфический командный язык. RPG во многом копировал его и был призван облегчить переход с табуляторов к компьютерам. Он эмулировал машинные циклы с физическим переключением проводов как программные циклы и обеспечивал большую свободу при сохранении базовых принципов управления потоками данных.

❗️Основное назначение языка — автоматическое формирование отчётов из файлов с данными в виде электронных таблиц. Это востребовано в бухгалтерии, складском учёте, обработке заказов и множестве других задач, которые принципиально не изменились с прошлого века.

RPG II и последующие версии языка адаптировали для самых разных платформ и ОС, включая Unix, IBM PC DOS и Windows (Visual RPG). В 2010 году IBM запустила проект RPG Open Access. Он позволяет программисту определять новые обработчики ввода-вывода, для которых RPG не обеспечивает встроенную поддержку.

📌IBM продолжает совершенствовать язык RPG. За последние годы в него добавили встроенные операторы SQL, поддержку Unicode и объектов Java, интеграцию с Eclipse и другие современные возможности. При этом сохраняется обратная совместимость. Первые программы на RPG можно запустить и сейчас практически без изменений. #ИЯП
Please open Telegram to view this post
VIEW IN TELEGRAM
👽Они уже среди нас! Сегодня рассказываем про язык с другой планеты — APL. #ИЯП

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

🔵В 1957 году канадский специалист по теории вычислительных систем Кеннет Айверсон публикует монографию «A Program Language». В ней он описывает необычный по стилю язык для обработки массивов данных и называет его APL (акроним от названия книги).

📌Сейчас бы мы сказали, что этот язык использует функциональную парадигму программирования и специальную нотацию, которая с шестидесятых годов стала использоваться не только в APL, но и в высшей математике в целом.

Тогда разработкой Айверсона заинтересовались в IBM, куда его и пригласили на работу. В 1965 году IBM выпускает первый интерпретатор APL, а ещё год спустя — клавиатуру с символами Айверсона и тремя дополнительными секциями управляющих знаков (её вы видите на фото).

❗️Язык APL подкупал своей лаконичностью. Он использовался не только в мейнфреймах и терминалах, но также и в персональном компьютере IBM 5100, созданным за 6 лет до начала эпохи IBM PC.

Благодаря коллективу московского Научно-исследовательского центра электронной вычислительной техники (НИЦЭВТ) во многих советских ЭВМ 80-х и начала 90-х годов тоже использовался APL.

🟥Сейчас APL теряет актуальность, хотя самые стойкие приверженцы продолжают развивать его как ряд независимых диалектов. Наиболее значимые из них — GNU APL, векторный язык программирования J и его собрат, ориентированный на структуру K-дерева, — язык K. Под влиянием APL была создана система компьютерной алгебры Mathematica и математический пакет MATLAB.
Please open Telegram to view this post
VIEW IN TELEGRAM