Файл: Современные языки программирования (Проблематика современных языков программирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 12.03.2024

Просмотров: 25

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

- Заранее известный (неограниченный или, наоборот, чётко очерченный) предел роста сложности программных компонентов, систем и комплексов, которые можно выразить средствами этого языка с сохранением показателей качества.

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

Языки, не имеющие математического обоснования (а именно такие наиболее часто применяются в мейнстриме: С++, Java, C#, и др.), на практике ограничивают реализуемую функциональность и/или снижают качество по мере усложнения системы, так как им присущи экспоненциальные кривые роста сложности как относительно работы одного отдельно взятого человека, так и относительно сложности управления проектом в целом. Прогнозируемая сложность системы приводит либо к поэтапной декомпозиции проекта на множество более мелких задач, каждая из которых решается соответствующим языком, либо к языково-ориентированному программированию для случая, когда адресуемой языком задачей является как раз описание семантик и/или символьные вычисления (Lisp, ML, Haskell, Рефал, Регулярные выражения). Языки с неограниченным пределом роста сложности программ нередко относят к метаязыкам (что в непосредственном толковании термина не верно, но практике сводимо, так как всякий мини-язык, выбранный для решения некоторой подзадачи в составе общей задачи, может быть представлен в виде синтаксического и семантического подмножества данного языка, не требуя трансляции).

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

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


ЗАКЛЮЧЕНИЕ

С развитием технологий развиваются и языки программирования. Появляются новые области и устройства, в которых применяются языки программирования. К новым областям относятся разработки искусственного интеллекта, облачные технологии. Новые устройства: смартфоны, беспилотные автомобили. Сегодня сложно найти область, в которой бы не использовалась информатика и языки программирования. Медицина, авиастроение, сельское хозяйство, управление предприятием, торговля, госрегулирование, банковский сектор оцифровываются и автоматизируются все процессы жизнедеятельности человека. В этих направлениях используются как языки, появившиеся ещё в 1970-х годах, но глубоко доработанные, так и новые языки, которые появились не более 10 – 15 лет назад, но при этом уже достаточно часто используемые, например Swift. При этом основные парадигмы языков программирования были разработаны в 60-х – 70-х годах двадцатого века, новые языки используют тот фундамент, который был заложен в те годы. Например, язык C, лег в основу огромного количества C-подобных языков, начиная от C++ и заканчивая JavaScript.

Языки стремятся стать более декларативными, краткими и понятные человеку в части написания кода, нередко принося в жертву безопасность и математическое обоснование. Хорошим примером служит наиболее популярный в наши дни язык Python, гибкий, универсальный, динамически типизированный, и очень простой в семантике. Во многом это обусловлено ростом информатизации человечества. Растут требования к скорости разработки программ, с одновременным ростом масштабов самих программ. Современные языки позволяют разбивать программу на компоненты, для возможности использования этих компонентов повторно, это объясняет популярность таких парадигм как объектно-ориентированное программирование.

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

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


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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. https://ru.wikipedia.org/wiki/Языки_программирования
  2. https://ru.wikipedia.org/wiki/Сравнение_языков_программирования
  3. https://en.wikipedia.org/wiki/Fifth-generation_programming_language
  4. Чарльз Петцольд. Код: тайный язык информатики. 2001г.
  5. https://habr.com/ru
  6. https://www.osp.ru/pcworld/2001/03/161246
  7. https://learn-code.ru/yazyki-programmirovaniya/swift
  8. https://javarush.ru/groups/posts/gde-ispolzuetsya-java
  9. https://geekbrains.ru/posts/5_top_first_langs
  10. https://tiobe.com/
  11. https://stackoverflow.com/
  12. https://prognote.ru/
  13. https://dou.ua/lenta/articles/language-rating-jan-2021/