Проект по информатике "Мёртвые языки программирования"
В процессе работы над исследовательским проектом по информатике на тему «Мёртвые языки программирования» ученицей 10 класса были изучены и созданы рабочие алгоритмы на языке BASIC. Выбрать именно эту тему для своего индивидуального проекта автор решила из-за интереса к изучению предшественников современных языков программирования.
В процессе написания исследовательской работы (проекта) по информатике о мёртвых языках программирования (BASIC) обучающейся была проведена работа по изучению устаревших языков для программирования и создание собственных алгоритмов в одном из языков.
Оглавление
Паспорт проекта
Этапы работы над проектом
SWOT-анализ
Введение
- Языки программирования
- История возникновения языков программирования
- Создание собственного алгоритма на мертвом языке программирования.
- Пример работы с программой
Ресурсы
Паспорт проекта
Название проекта: «Мёртвые языки программирования»
Руководитель проекта: Афонина Елена Григорьевна
Тип проекта: информационный
Противоречие: из-за постоянного развития технологий, многие языки, которые еще недавно были актуальными и использовались в работе, сейчас считаются мёртвыми.
Проблема: некоторые банки и государственные системы(пенсионный фонд, налоговая служба, здравоохранение и др.)до сих пор работают на устаревших языках программирования(COBOL, Fortran, Ada и др.), а специалистов, которые умеют работать на этих языках становится все меньше
Цель: познакомиться с одним из первых языков программирования, изучить его историю и научиться с ним работать.
Задачи проекта:
- Изучить развитие языков программирования.
- Определить какие языки программирования сейчас являются мёртвыми.
- Оценить вклад мёртвых языков для развития программирования.
Вопросы проекта:
- Какие этапы включает в себя работа на мёртвом языке программирования?
- Какие современные технологии используются для поддержания работы на мёртвых языках программирования?
Этапы работы над проектом
| Этапы работы над проектом | Содержание работы | Деятельность обучающегося | Временные рамки |
|---|---|---|---|
| Подготовительный | Определение темы. Формулировка цели, задач, проблемы и противоречия проекта. | Согласовать тему и содержание проекта с куратором и формулировка целей, задач, проблем. | Сентябрь – Октябрь 2025 |
| Организационный | Сбор информации из различных источников. | Проанализировать различные источники, составление плана работы. | Октябрь – Ноябрь 2025 |
| Практический | Создание программы, выявление возможных недостатков и недочётов. | Создание программы согласно составленной схеме проекта и плану работы. | Декабрь – Январь 2025-2026 |
| Аналитический | Анализ готовой части проекта, доработка, корректировка программы в соответствии с отзывами. | Проведение самоанализа проделанной работы, выявление недоработок, недостатков и устранение их. | Февраль – Март 2026 |
| Презентационный | Составление презентации и публичное представление продукта проектной деятельности. | Презентация проекта и работы готового программного продукта. | Май 2026 |
SWOT-анализ
| Сильные стороны | Слабые стороны |
|---|---|
| 1.Стабильность и предсказуемость во время работы. 2.Низкая подверженность современным киберугрозам. 3.Эффективность для конкретных требований, направленных на узкий спектр задач. |
1.Нехватка специалистов, умеющих работать на мёртвых языках программирования. 2.Сложность или невозможность подключения к современных API. 3.Риск потери важных данных без возможности восстановления. |
| Возможности | Угрозы |
| 1.Работа в области с низкой конкуренцией. 2.Возможность создания различных эмуляторов. 3.Работа с уникальными старинными системами. |
1.Риск выхода из строя систем в ключевых современных отраслях. 2.С выходом на пенсию последних специалистов умеющих работать на мертвых языках программирования может быть риск потери важных знаний при работе. |
Введение
Из-за ускоренного развития информационных технологий особый интерес представляет сохранение работы на мёртвых языках программирования, которые считаются морально устаревшими. Под «мёртвыми» в данном контексте понимаются языки, вышедшие из активного промышленного использования, не поддерживаемые производителем или не изучаемые в рамках современных образовательных программ, но при этом продолжающие выполнять критически важные функции в ряде отраслей.
Актуальность темы обусловлена наличием системного противоречия. С одной стороны, наблюдаются экспоненциальные темпы обновления технологического стека в коммерческом секторе. С другой — ключевые сегменты государственной инфраструктуры, финансовой системы, энергетики и оборонно-промышленного комплекса продолжают полагаться на то, что было разработано несколько десятилетий назад.
Сохранение работы на устаревших языках программирования – это не случайность. Такие системы, обеспечивают стабильность процессов в областях, где цена ошибки исключительно высока: в энергетике, на транспорте, в финансовых расчетах и управлении государственными ресурсами. Принцип «работает – не трогай» здесь является не просто позицией, а часто едино согласованной стратегией управления рисками.
Однако эта стабильность имеет свои риски, порождая комплекс вызовов. Среди них – острая нехватка специалистов, способных поддерживать и модифицировать унаследованный код, растущие затраты на обслуживание архаичной инфраструктуры, а также фундаментальные трудности интеграции с современными цифровыми сервисами. По сути, мы наблюдаем системное противоречие между необходимостью цифровой трансформации и зависимостью от проверенных, но технологически изолированных решений.
Языки программирования
Современная разработка опирается на языки, которые активно эволюционируют, имеют большое сообщество и широкую сферу применения. Например, Python, сочетающий простоту синтаксиса с мощными библиотеками, стал стандартом для анализа данных, машинного обучения и веб-разработки. JavaScript, изначально созданный для интерактивности в браузере, теперь с помощью экосистемы Node.js используется и на сервере, объединяя фронтенд и бэкенд. Языки вроде Go и Rust предлагают новые решения для задач параллелизма и безопасной работы с памятью, отвечая на вызовы современных высоконагруженных и распределённых систем.
Сфера мобильной разработки приносит нам некоторые неожиданности, такие как одновременный рост доли Kotlin и сокращение доли Swift, что отражает соотношение разработки на Android и Ios. Еще интересно, что Flutter теперь используют чаще, чем React Native, в сегменте мультиплатформенных мобильных приложений.
В области DevOps основным языком, как и раньше, является Python. Ну и Embedded-разработка довольно консервативна. Как и раньше, большинство проектов написаны на C и C++, но видно, что с ростом мощности встроенных систем появилось место и для Python. Еще небольшой сегмент Embedded-разработки на Java — микрокарты — сейчас почти исчез.
Сейчас у большинства новичков первым языком программирования является JavaScript, но также заметно растет роль Python. С одной стороны, возможно, это отражение того, что Python больше подходит для обучения, чем JavaScript, с другой стороны – данные показывают, что большинство из тех, для кого JavaScript был первым языком программирования, сейчас работает в экосистеме JavaScript/TypeScript, а для кого Python – на Python.
Эти «живые» языки характеризуются активным развитием: регулярно выходят обновления, создаются новые платфоромы, а образовательные ресурсы постоянно обновляются. Их популярность подпитывается не только техническими преимуществами, но и сетевым эффектом — наличием готовых решений, обширной документации и рынка труда.
Однако программная индустрия не стирает прошлое, а наслаивает новое на старое. Многие принципы, заложенные в «классических» и даже вышедших из широкого употребления языках, находят своё воплощение в современных. Именно поэтому изучение устаревших языков программирования является важным этапом при разработке новых.
История возникновения языков программирования
История возникновения языков программирования — это, по сути, история поиска удобного способа объяснить машине, что от неё требуется. Первые попытки были очень сложными — программисты буквально вручную переключали провода или подавали сигналы с помощью перфокарт. Потом появился Ассемблер, который заменил наборы нулей и единиц на короткие буквенные команды вроде «ADD» или «MOV». Это был большой шаг вперёд, но такой код всё равно был неудобен и понятен только специалистам.
Первый шаг к созданию того, что привычно нам сейчас случился тогда, когда люди захотели давать компьютеру команды, похожие на человеческую логику или математические формулы. Так появились первые языки высокого уровня.«Fortran» позволял учёным записывать сложные расчёты. Примерно в то же время создали «LISP», который стал удобным инструментом для работы не с числами, а с символами и списками. Для бизнеса был создан «COBOL» — его код напоминал простые английские предложения, что позволяло бухгалтерам и менеджерам хотя бы примерно понимать, что делает программа.
Создавая новые языки, специалисты делали упор на безопасность, простоту и структурированность. Такой язык программирования, как «Pascal», стал активно использоваться в университетах благодаря своей универсальности, подходящей для широкого спектра задач. Язык программирования «C» с одной стороны позволял писать эффективный и быстрый код, близкий к машинному, а с другой — на нем можно было создавать достаточно сложные программы. Именно на его основе позже создавались C++, Java и C#.
Во время периода появления персональных компьютеров потребовались простые и наглядные языки программирования. «BASIC» стал первым языком для миллионов школьников. «Visual Basic» и «Delphi» позволили создавать оконные приложения с интерфейсом. При расцвете интернета на первый план вышли «JavaScript» и «Java». «JavaScript» позволил разработчикам создавать несложные игры и писать скрипты прямо на веб-страницах, а «Java» использовался для создания веб-приложений.
Сейчас популярны такие языки, как «Python», который делает акцент на понятности и скорости разработки. Языки вроде «Go» или «Rust» решают задачи, связанные с надёжной работой в социальных сетях, стараясь сделать работу удобной и понятной
История и эволюция языков программирования — это путь от машинных кодов и сложного написания к более удобным и понятным каждому языкам.
Вот так, например, происходила история возникновения некоторых языков программирования:
ALGOL

был создан в 1958 году. Название происходит от сокращения словосочетания «алгоритмический язык» — Algorithmic Language. Над ним трудилась группа европейских и американских компьютерных экспертов. Годы его расцвета — 1958–1968. Использовался для научных вычислений. Это был фактически первый эксперимент по созданию языка, который можно применять на различных платформах. Оказалось, что он больше подходит для лабораторных вычислений, чем для коммерческих приложений, поскольку в исходной форме язык не поддерживал никаких протоколов ввода-вывода.
COBOL

был создан в 1959 году. Название является аббревиатурой для Common Business-Oriented Language. Над ним работала крупная группа, в которую входила и пионер компьютерных наук Грейс Хоппер, известная в том числе и как создательница термина «баг». Период расцвета COBOL — 60-80 годы. Тогда он использовался для крупных корпоративных систем (страховка, банки и т.д.). Сегодня его до сих пор учат в некоторых школах. А в 2000 году финансовые учреждения должны были вызывать знатоков COBOL из отдыха на пенсии, чтобы пофиксить «проблему 2000 года».
PASCAL

был создан в 1968 году швейцарским ученым Никлаусом Виртом, назван в честь математика Блеза Паскаля. Годы расцвета — 1980-е. Самый популярный наследник ALGOL, использовался в том числе для программирования под ранние версии компьютеров Apple. Популярная версия от 1983 года называлась Turbo Pascal. Сейчас используется для преподавания, но намного реже, чем лет 30 назад.
Создание собственного алгоритма на мертвом языке программирования
Для создания алгоритма решения задач я использовала приложение BASIC. Перед написанием алгоритма я изучила структуру написания кода, лишь после этого приступив к работе.
Задача 1: План местности разбит на клетки. Каждая клетка обозначает квадрат 1м×1м. Найдите площадь участка.
Решение:

Задача 2: Через точку, делящую высоту конуса в отношении 1:4, считая от вершины, проведена плоскость, параллельная основанию. Найдите объём этого конуса, если объём конуса отсекаемого от данного конуса проведённой плоскостью, равен 10
Решение:

Задача 3: В треугольной пирамиде ABCD рёбра AB, AC и AD взаимно перпендикулярны. Найдите объём этой пирамиды, если AB=3, AC=18 и AD=7
Решение:

Задача 4: Даны две коробки, имеющие форму правильной четырёхугольной призмы , стоящей на основании. Первая коробка вдвое выше второй, а вторая в четыре раза шире первой. Во сколько раз объём второй коробки больше объема первой?
Решение:

Задача 5: Установите соответствие между величинами и их возможными значениями:
к каждому элементу первого столбца подберите соответствующий элемент из второго столбца.
ВЕЛИЧИНЫ:
А) объём детской комнаты
Б) объём пакета сметаны
В) объём коробки из-под стиральной машины
Г) объём воды в озере Таймыр
ЗНАЧЕНИЯ:
1) 12,8 км³
2) 0,5 л
3) 36 м³
4) 300 л
Решение:

Пример работы с программой
Для создания собственного алгоритма в BASIC нужно чёткое понимание задачи: начальные данные, результат и возможные ограничения. После этого разрабатывается логическая схема — словесно или в виде псевдокода, после чего выбираются подходящие структуры данных (простые переменные INTEGER, STRING и т.д.).
BASIC использует операторы INPUT для ввода и PRINT для вывода, IF, THEN, ELSE для ветвлений и циклы FOR или WHILE для повторяющихся действий; например, для вычисления факториала применяется цикл FOR с накоплением произведения, а при решении квадратного уравнения проверяется дискриминант и через SQR вычисляются корни. В конце проверяем результат и исправляем ошибки, если они есть.
Алфавит языка программирования BASIC включает все латинские прописные и строчные буквы, арабские цифры, знаки арифметических операций (+, -, *, /, ^, \), знаки отношений (=, <>, <, >, <=, >=), а также специальные символы: двойные кавычки для строк, апостроф для комментариев, суффиксы для указания типа переменных ($, %, #, &, !), запятую и точку с запятой как разделители, круглые скобки для изменения приоритета и передачи параметров, двоеточие для разделения операторов в одной строке.
Типы данных обозначаются суффиксом в имени переменной: % для целых чисел от -32768 до 32767, & для длинных целых, ! (или отсутствие суффикса) для чисел с плавающей точкой обычной точности, # для чисел двойной точности, $ для строковых переменных.
Функции языка реализуются через операторы и встроенные функции, арифметические действия выполняются стандартными операторами, а математические функции, такие как SQR (квадратный корень), ABS (модуль), INT (целая часть), SIN, COS, TAN, ATN, LOG, EXP, а также операция MOD для остатка от деления, позволяют проводить вычисления, символ ? может заменять PRINT.
Управление ходом программы осуществляется с помощью условного оператора IF, THEN, ELSE, циклов FOR, NEXT и DO WHILE, LOOP, операторов перехода GOTO и подпрограмм GOSUB, RETURN, а завершает программу END. Присваивание значения переменной выполняется оператором LET (часто опускается), комментарии начинаются с REM или апострофа, экран очищается командой CLS, а для генерации случайных чисел используется функция RND.
Ресурсы
- https://habr.com/ru/articles/730954/
- https://ru.wikipedia.org/wiki/Алгол
- https://e-derslik.edu.az/books/483/units/unit-1/page82.xhtml
- https://ru.hexlet.io/blog/posts/10-samyh-vliyatelnyh-mertvyh-yazykov-programmirovaniya
- https://ain.ua/ru/2024/05/08/5-mertvix-jazikov-programmirovanija/







