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

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

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

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

Добавлен: 22.04.2023

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

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

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

Одним из основных требований при создании языка С++ была его полная обратная совместимость с языком Си. Он сохраняет систему типов языка Си и добавляет к ней классы. Язык С++ одновременно имеет типы традиционных императивных языков и структуру классов объектно–ориентированного языка.

Пример кода на языке С++

#include <iostream>

using namespace std;

 int main() {

    cout << "Hello, World!";

    return 0;

1.10 Java

К концу 80 – 90х годов, объектно-ориентированное программирование на С++ стало основным методом программирования. Считалось, что программисты, наконец, изобрели идеальный язык для работы. Однако, все сильнее приближалась эра интернета, которая не оставила без изменений ситуацию в сфере языков программирования.

В 1991 году Джеймсом Гослингом, Патриком Нотоном и другими разработчиками была начата работа над языком Java[[24]]. И весной 1995 было публично объявлено о создании языка.

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

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


В тоже время, Java углубил и усовершенствовал объектно-ориентированный подход, использованный С++. Он добавил в него поддержку многопоточной обработки и предоставил библиотеку, которая упростила доступ к Интернету.

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

Аплет[[25]] - это особый вид прикладной программы на Java, предназначенный для передачи через Интернет и автоматического выполнения в совместимом с J ava веб-браузере. Более того, аплет загружается по требованию, не требуя дальнейшего взаимодействия с пользователем. Если пользователь щелкает кнопкой мыши на ссьшке, которая содержит аплет, он автоматически загружается и запускается в браузере. Аплеты создаются в виде небольших программ. Как правило, они служат для отображения данных, предоставляемых сервером, обработки действий пользователя или выполнения локально, а не на сервере, таких простых функций, как вычисление процентов по кредитам. Аплет позволяет перенести ряд функций со стороны сервера на сторону клиента. Появление аплетов изменило характер программирования приложений для Интернета, поскольку они расширили совокупность объектов, которые можно свободно перемещать в сети Интернет. То есть, между сервером и клиентом передаются две крупные категории объектов: пассивные данные и динамически активизируемые программы. Например, чтение сообщений электронной почты подразумевает просмотр пассивных данных. Даже при загрузке программы ее код по-прежнему остается пассивными данными до тех пор, пока он не начнет выполняться. И напротив, аплет представляет собой динамическую, автоматически выполняющуюся прикладную программу. Такая программа является активным агентом на клиентской машине, хотя она инициируется сервером. В тоже время, Java обеспечивает защиту, ограничивая действие аплета исполняющей средой и не предоставляя ему доступ к другим частям операционной системы компьютера.

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


Пример кода на языке Java

/*

Присвоить исходному файлу имя "Example. java"

* /

class Example {

/ / Эта программа начинается с вызова метода main ()

public static void main ( String args [] ) {

System.out . print l n ( " Простая программа на Java.") ;

}

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

Глава 2. Современные языки программирования и сферы их применения

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

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

Согласно рейтингу сайта https://www.tiobe.com проводящего ежегодные исследования в области популярности языков программирования на январь 2019 года, сложилась довольно интересная ситуация.

2.1 Java

Возглавляет рейтинг язык Java. Прежде всего - это язык, который используется[[26]] для серверных приложений в крупных корпорациях. Особенно часто Java используется в банках, страховых компаниях, розничных сетях, для написания бэк-энд и фронт-энд офисных электронных систем. Широкое применение Java нашла в электронной коммерции и вэб-приложениях, в трейдинговых приложениях. Не обойтись без него в Android приложениях. Огромная популярность смартфонов с системой Андройд, закрепила за Java эту нишу. Помимо этого в десктопных приложениях, программных средствах и средствах разработки, также используется этот язык программирования.


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

class Code

{

public static void main (String[] args) throws java.lang.Exception

{

System.out.println ("Hello, World!");

}

} class Code

{

public static void main (String[] args) throws java.lang.Exception

{

System.out.println ("Hello, World!");

}

}

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

public static void main (String[] args) throws java.lang.Exception – операторы. Это — главная функция класса. Она запускается первой. Функций может быть много, но main () должна присутствовать всегда. В скобках указаны аргументы — инструкции функции, с помощью которых она понимает, какие данные ей нужно принимать, и принимает их. Здесь это аргументы командной строки, т. е. указание на считывание данных с клавиатуры. После аргументов указано ключевое слово throws с исключением — оно позволяет программе завершиться без фатальных для системы ошибок при возникновении неполадок в коде, здесь — языковых.

System.out.println ("Hello, World!"); - оператор вывода, то есть инструкция программе. Оператор println выводит заданную в скобках информацию — переменную или строку. Здесь это строка, поэтому она указана в кавычках.

2.2 Си

На втором месте находится язык Си, переживший некоторые изменения, до сих пор находящийся в топе применяемых языков. Язык, благодаря своему производительному коду, широко применяется при разработке операционных систем, драйверов, а также операционных систем некоторых мобильных устройств. Также обладает кроссплатформенностью с возможностью обработки на разных системах, с разной архитектурой. Си очень близок к машинному коду, и позволяет контролировать выделяемую память, но в тоже время, это полноценный язык программирования решающий определенные задачи. Из минусов, можно выделить требовательность к высокой квалификации программиста и неширокую специализацию[[27]].

Код на Си выглядит следующим образом


#include

<stdio.h>

{

int a,b,c;

a=5; b=7;

c=a+b;

printf("Cумма = %d \n",c)

}

В языке Си любая программа, состоит из нескольких программных единиц и каждая из них - функция. Функции в Си подобны функциям или подпрограммам в Фортране или процедурам в Паскале, имена функций выбираются произвольно (только латинскими буквами), но одно из них main, именно с нее начинается выполнение программы. Такая главная функция обычно обращается к другим функциям, которые находятся в одном файле с головной программой или извлекают из библиотеки предварительно подготовленных функций. Функция main не имеет аргументов, поэтому список ее выглядит так: ( ) . Скобки { } обрамляют операторы, которые реализуют собственно алгоритм. Эти скобки аналогичны BEGIN - END в Паскале.

Строка int a,b,c объявляет a,b,c переменными целого типа. Все используемые в программе переменные должны быть объявлены. Далее идут опрераторы присваивания к a значение 5, а к b - 7, с - значение их суммы. Функция printf выводит на экран: СУММА = 12.

2.3 Python

На третьем месте расположился высокоуровневый мультипарадигменный язык Python. Он создавался под влиянием многих языков программирования, среди которых языки: Си, С++, Smalltalk, Lisp, Fortran, Java и другие. Тем самым, он стал языком общего назначения, нацеленный на повышение скорости написания программ. Сфера применения очень обширна, от веб-разработки до научных проектов[[28]]. Все благодаря тому, что от других языков он взял самое лучшее. Например, реализация объектно-ориентированной парадигмы от С++, функциональные особенности от Lisp языков. Вследствие чего, он активно применяется в сфере обучения нейронных сетей и искусственного интеллекта. Python – универсальный язык программирования[[29]], при помощи которого можно делать любые приложения в диапазоне от интернет-сайтов и десктопных приложений до роботов и системных сервисов.

Плюсами языка являются:

- открытая разработка;

- предоставляет средства быстрого прототипирования и динамической семантики;

- простой понятный синтаксис;

- большое сообщество программистов;

- продуманная модульность и масштабируемость;

- большое количество библиотек.

Из минусов, можно выделить:

- ограниченность средств, для работы с базами данных;

- недостатки синтаксиса;

- невысокую скорость выполнения программ;

- отсутствие возможности модифицировать некоторые классы.