Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Языки программирования ).pdf

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

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

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

Добавлен: 24.04.2023

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

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

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

СОДЕРЖАНИЕ

Введение

1. Языки программирования

1.2. История развития языков программирования

1.3. История развития среды для разработки программ

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

2.1.  Машинно – ориентированные языки

2.1.1. Машинные языки

2.1.2. Языки символического кодирования

2.1.3. Автокоды

2.1.4. Макрос

2.2. Машинно – независимые языки

2.2.1. Проблемно – ориентированные языки

2.2.2. Универсальные языки

2.2.3. Диалоговые языки

2.2.4. Непроцедурные языки

3. Выбор языка и среды для разработки программ

3.1. Современные языки программирования

3.1.2. Python

3.1.3. Java

3.1.4. JavaScript

3.1.5. PHP

3.1.6. С, С++, С#

3.2. Среды для разработки программ

3.2.1. Microsoft Visual Studio

3.2.2. Java Development Kit

3.2.3. BlackBox Component Builder

3.2.4. Eclipse

3.3. Методологии программирования

3.2.1. Структурное программирование

3.2.2. Объектно-ориентированное программирование

3.2.3. Декларативное программирование

3.2.4. Параллельное программирование

Список использованной литературы.

Обычно среда разработки программного обеспечения предназначена для разработки только на одном языке программирования. А такая среда разработки как интегрированная, предоставляет право выбрать создателю программы язык программирования для разработки, удобный разработчику (из языков поддерживаемых данной средой). Примером тому служат: Visual Studio, Eclipse. [10], [12].

3.2.1. Microsoft Visual Studio

Microsoft Visual Studio — это набор инструментов для создания программного обеспечения: от планирования до разработки пользовательского интерфейса, написания кода, тестирования, отладки, анализа качества кода и производительности, развертывания в средах клиентов и сбора данных телеметрии по использованию.

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

По умолчанию Visual Studio обеспечивает поддержку C#, C и C++, JavaScript, F# и Visual Basic. Visual Studio хорошо работает и интегрируется со сторонними приложениями, например, Unity и Apache Cordova. Также можно самостоятельно расширить Visual Studio, создав собственные инструменты для выполнения специализированных задач.

Несмотря на то, что Visual Studio можно использовать для работы с отдельными файлами кода, как правило, работа выполняется в рамках проекта. Проект Visual Studio — это совокупность файлов и ресурсов, которые компилируются в единый двоичный исполняемый файл (например, EXE, DLL, APPX). Поскольку иногда может потребоваться создать несколько двоичных файлов или веб-сайтов, которые тесно связаны, Visual Studio использует концепцию решения, которое может содержать несколько проектов или веб-сайтов. [8]

3.2.2. Java Development Kit

Java Development Kit (JDK) — бесплатно распространяемый компанией Oracle Corporation (ранее Sun Microsystems) комплект разработчика приложений на языке Java, включающий в себя компилятор Java, стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE). В состав JDK не входит интегрированная среда разработки на Java, поэтому разработчик, использующий только JDK, вынужден использовать внешний текстовый редактор и компилировать свои программы, используя утилиты командной строки.

Все современные интегрированные среды разработки приложений на Java, такие, как JDeveloper, NetBeans IDE, Sun Java Studio Creator, IntelliJ IDEA, Borland JBuilder, Eclipse, опираются на сервисы, предоставляемые JDK. Большинство из них для компиляции Java-программ используют компилятор из комплекта JDK. Поэтому эти среды разработки либо включают в комплект поставки одну из версий JDK, либо требуют для своей работы предварительной инсталляции JDK на машине разработчика.


Существуют комплекты разработки приложений на Java других производителей, доступные для ряда платформ. Часть из них начиналась с исходного кода Sun JDK, часть — нет. Все они строго выполняют базовые спецификации Java, но обычно отличаются в областях, для которых нет явных спецификаций. Например, Сборка мусора, стратегии компиляции и техники оптимизации. [9]

3.2.3. BlackBox Component Builder

BlackBox Component Builder — open-source среда разработки-выполнения для языка Компонентный Паскаль, разработанная швейцарской компанией Oberon Microsystems.

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

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

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

Других компилирующих сред, обладающих такой гибкостью, на сегодняшний день нет. [6]

3.2.4. Eclipse

Eclipse представляет собой основанную на Java расширяемую платформу разработки с открытым исходным кодом. По сути - это просто среда разработки и набор сервисов для построения приложений на основе встраиваемых компонентов (плагинов). К счастью, в составе Eclipse имеется стандартный набор плагинов, в том числе хорошо известный инструментарий - Java Development Tools (JDT).

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


Эта целостность и последовательность характерны не только для инструментов Java-разработки. Хотя Eclipse написан на Java, использовать его можно и с другими языками. К примеру плагины, поддерживающие такие языки программирования как C/C++ и COBOL. Структура Eclipse может также использоваться как основа для других типов приложений, не имеющих отношения к разработке ПО, например, систем управления контентом.

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

Те, кто создаёт плагины к Eclipse или использует Eclipse как базу для разработки ПО, обязаны публиковать любой код Eclipse, который они используют либо модифицируют в рамках лицензии EPL, но имеют право лицензировать свои собственные дополнения, как им нравится. Собственный код, объединённый в комплект с ПО из Eclipse, не требует лицензирования в качестве открытого исходного кода, а сам исходный код не нужно делать общедоступным. [7]

3.3. Методологии программирования

Методология программирования - это совокупность идей, понятий, принципов, способов и средств, определяющая стиль написания, отладки и сопровождения программ.

Перечислим основные методологии (парадигмы) программирования вместе с присущими им видами абстракций:

− процедурно-ориентированные – алгоритмы;

− объектно-ориентированные – классы и объекты; [2]

3.2.1. Структурное программирование

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

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

Структурное программирование, наиболее отчетливо выраженное в языке Pascal, возникло в ходе развития процедурно-ориентированного подхода, заложенного в исторически языке программирования FORTRAN.


Основу технологии структурного программирования составляют следующие положения:

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

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

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

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

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

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

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

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

Использование модулей имеет следующие преимущества:

1) возможность создания программы несколькими программистами;

2) простота проектирования и последующих модификаций программы;

3) упрощение отладки программы – поиска и устранения в ней ошибок;

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

Сегодня дополняющим структурное программирование, создающим основу для разработки современных программных комплексов стало объектное объектно-ориентированное программирование, а противостоящим ему при решении определенных классов задач является декларативное программирование, выраженное двумя разными подходами – функциональным и логическим. [2]


3.2.2. Объектно-ориентированное программирование

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

Объектно-ориентированное программирование позволяет резко сократить объем и трудоемкость разработки программ, имеющих дело с множеством связанных друг с другом объектов.

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

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

Чтобы проект можно было считать объектно-ориентированным, объекты должны удовлетворять некоторым требованиям. Этими требованиями являются инкапсуляция, наследование и полиморфизм.

Инкапсуляция – это механизм, который объединяет данные и код, манипулирующий этими данными, а также защищает и то, и другое от внешнего вмешательства или неправильного использования. В объектно-ориентированном программировании код и данные могут быть объединены вместе; в этом случае говорят, что создаётся так называемый «черный ящик». Когда коды и данные объединяются таким способом, создаётся объект.

Наследование – свойство объектов порождать своих

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

Полиморфизм – многие объекты могут иметь одноименные методы, которые могут выполнять разные действия для разных объектов. Например, оператор «+» для числовых величин выполняет сложение, а для текстовых – склеивание. Выполнение каждого конкретного действия будет определяться типом данных.