Файл: Классификация языков программирования высокого уровня (Анализ понятия «язык программирования»).pdf

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

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

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

Добавлен: 30.03.2023

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

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

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

а) Delphi (Lazarus некоммерческая - версия для ОС семейства Linux) - основана на Object Pascal;

б) C++, С# (~ C);

в) Visual Basic (~ Basic);

г) Visual Fortran (~ Fortran);

д) Prolog++ (~ Prolog).

В процессе написания работы, мы изучили языки программирования, которые оказались самыми популярными и самыми востребованными в 2019 году:

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

2) Java снова занял самое высокое положение благодаря использованию для создания Android приложений, хотя несколько лет назад он несколько упал. Java можно использовать для мобильных приложений, на уровне предприятия, для создания десктопных приложений и для создания приложений Android на планшетах и смартфонах.

3) PHP - Хотя многие уже несколько лет как против PHP, он остается самым популярным языком для создания серверной части веб-приложений. PHP является основой самых популярных систем управления контентом (CMS), как например, WordPress.

4) JavaScript является незаменимым языком для создания клиентской части веб-приложений. Даже если использовать другие языки, как Elm, Clojure, Reason, результат компилируются в JavaScript. Единственное WebAssembly набирает все большую популярность, но и там JS незаменим для передачи данных. Кроме этого, JavaScript становится все популярнее для серверной части (NodeJs). Electron добавляет популярность для клиентских приложений (отметим, что даже Microsoft Visual Studio сделан на JavaScript). Плюс используя React Native многие крупные компании создают мобильные приложения на JavaScript.

5) Objective-C - iOS остается самой популярной платформой для мобильных приложений, для которой необходимо знать язык Objective-C, как минимум для того, чтобы использовать XCode, инструментом разработки программного обеспечения от Apple.

6) Ruby - Другой популярный язык программирования - это Ruby и Ruby on Rails. Этот язык программирования широко применяется для веб-программирования.

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


8) C, C++ и C# - считается базой для программирования, многие языки представленные выше разработаны на C. C ++ добавляет новые возможности объектно-ориентированного программирования, и очень широко используются при создании аппаратно ускоренных игр и в жизненно важных операционных системах, таких как Unix и Windows. C# наследует синтаксис С++ и многое заимствовано от языка Java. C# является основным языком для приложений от Microsoft, используя .Net и ASP.

9) SQL - Несмотря на появления баз данных noSQL, SQL (Standard Query Language) не теряет популярность для систем управления базами данных, так как многие используют MySQL, PostgreSQL, Microsoft SQL Server, Oracle и т. д. Это язык для построения запросов к базе данных и является больше стандартом, каждая база данных добавляет незначительные отличия.

10) Swift - считается самым модным языком программирования для расширения приложений для продуктов Apple. Многие используют его для приложений iOS, и MacOS/OSX.

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

2.2 Способы реализации языков программирования

Для написания любой программы недостаточно просто создать язык. Для каждого языка требуется свой переводчик. Такими переводчиками являются специальные программы-трансляторы.

Транслятор - это программа, предназначенная для перевода программы, написанной на одном языке программирования, в программу на другом языке программирования. Процесс перевода называется трансляцией. Тексты исходной и результирующей программ находятся в памяти компьютера. Примером транслятора является компилятор.

Компилятор - транслирует весь текст программы, написанной на языке высокого уровня, в ходе непрерывного процесса. При этом создается полная программа в машинных кодах, которую затем ЭВМ выполняет без участия компилятора. Он оценивает его в соответствии с синтаксической конструкцией языка и переводит на машинный язык. Другими словами, компилятор не исполняет программы, он их строит. Процесс такого перевода называется компиляцией.

Байт-код - это промежуточный подход, при котором программа преобразуется в промежуточный двоичный вид, интерпретируемый некой «виртуальной машиной» во время исполнения.


Компилятор создаёт законченный результат - программу в машинных кодах. Затем эта программа выполняется. Откомпилированный вариант исходной программы можно сохранить на диске. Для повторного выполнения исходной программы компилятор уже не нужен. Достаточно загрузить с диска в память компьютера откомпилированный в предыдущий раз вариант и выполнить его.

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

Интерпретатор - последовательно анализирует по одному оператору программы, превращая при этом каждую синтаксическую конструкцию, записанную на языке высокого уровня, в машинные коды и выполняя их одна за другой. Интерпретатор должен постоянно присутствовать в зоне основной памяти вместе с интерпретируемой программой, что требует значительных объемов памяти. Это программа, предназначенная для построчных трансляции и выполнения исходной программы. Такой процесс называется интерпретацией. По-другому можно сказать, что интерпретатор моделирует некоторую вычислительную виртуальную машину, для которой базовыми инструкциями служат не элементарные команды процессора, а операторы языка программирования. В процесс трансляции входит проверка исходной программы на соответствие правилам используемого в ней языка. Если в программе обнаружены ошибки, транслятор вводит сообщение о них на устройство вывода (обычно, на экран дисплея).

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

Иногда один и тот же язык может использовать и компилятор, и интерпретатор. К числу таких языков относится, например, Бейсик. Как правило, программы-компиляторы и интерпретаторы называются так же, как и языки, для перевода с которых они предназначены. Слова Паскаль, Ада, Си могут относиться как к названиям языков, так и к названиям соответствующих программ.


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

Недостатком интерпретаторов является то, что они тихоходны. Ими затрачивается слишком много времени на разгадывание того, что делать, вместо того чтобы заниматься действительно делом. При исполнении программных операторов, интерпретатор должен сначала сканировать каждый оператор с целью прочтения его содержимого (что этот человек просит меня сделать?), а затем выполнить запрошенную операцию. Операторы в циклах сканируются излишне много. В реальных системах программирования перемешаны технологии и компиляции и интерпретации. Причиной вновь вспыхнувшего интереса к компиляторам стало появление быстрых и сложных 64-разрядных микропроцессоров, типичным представителем которых можно считать Intel Itanium. Ответственность за увеличение производительности, на которое потенциально способны будущие 64-разрядные процессоры, ложится на компиляторы нового поколения.Такие компиляторы уже создаются в исследовательских лабораториях ряда компаний -- Hewlett-Packard, Intel, MetaWare, Microsoft и других. В феврале прошлого года компания Silicon Graphics объявила о том, что ее оптимизированные компиляторы позволяют увеличить на 30-100% по сравнению с существующими продуктами производительность программ, работающих на компьютерах с процессорами Itanium и операционной системой Linux. Как и их предшественники, оптимизированные компиляторы преобразуют программы на высокоуровневом языке в машинный код. Помимо этого, они гарантируют максимально эффективное использование памяти (и в первую очередь процессорного кэша и механизма распараллеливания). Например, процессоры Itanium предназначены для того, чтобы одновременно обрабатывать до шести команд на каждый такт процессора. В прошлом году Microsoft анонсировала C#, объектно-ориентированный язык программирования, согласованный с XML. Корпорация подает новый язык как логическое продолжение Си и C++ для Web-приложений. Ключевыми модулями станут Common Language Runtime для C# и специальный компилятор, который преобразует текст, написанный на традиционных языках Кобол, Perl, Фортран или других, в промежуточный язык, который будет работать на новой платформе Microsoft .Net. Может появиться новое поколение компиляторов, позволяющих увеличить производительность до уровня, позволяющего убедить профессионалов в необходимости использовать 64-разрядные аппаратные архитектуры.


2.3 Классификация языков программирования

В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.

Существующие языки программирования классифицируют по четырём основным группам:

  1. процедурные;
  2. объектно-ориентированные;
  3. функциональные;
  4. логические.

Дадим краткие определения каждого подхода.

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

Декларативные языки программирования - это языки объявлений и построения структур. К ним относятся функциональные и логические языки программирования. В этих языках не производится алгоритмических действий явно, то есть алгоритм не задается программистом, а строится самой программой. В декларативных языках задается, производится построение какой-либо структуры или системы, то есть декларируются (объявляются) какие-то свойства создаваемого объекта. Эти языки получили широкое применение в системах автоматизированного проектирования (САПР), в так называемых CAD-пакетах, в моделировании, системах искусственного интеллекта.

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

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