Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Классификация языков программирование. Категории выбора среды и языков разработки программ.

Содержание:

Введения

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

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

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

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

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

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

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

Новый способ нашли, для каждой ЭВМ был создан автокод (или Ассемблер). Это был, по сути, набор команд машинного языка, он просто упрощал программирование на Машином коде. (См. Рис.1)

(Рис.1 Пример «Привет Мир»)

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

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

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

- Машинные языки (Computer language) – это языки программирование, которые может воспринимать компьютер, машинные коды.

- Машинно-ориентированные языки (Computer-oriented language) – это языки программирование, которые отражают структуру конкретного типа компьютера, в этот класс входит ассемблер.

- Алгоритмические языки (Algorithmic language) – это языки программирование для отражения структур алгоритмов, в этот класс входит, Паскаль, Фортран, Бейсик и другие.

- Процедурно-ориентированные языки (Procedure-oriented language) – это языки программирование, где иметься возможность описание программ как совокупность процедур (Подпрограмм)

- Проблемно-ориентированные языки (universal oriented language) – это языки программирование, которые предназначены для решения определенного класса, например в этот класс входит, Лисп, РПГ, Симула и другие.

- Интегрированные системы программирование

А если за признак классификации взять принадлежность к одному из устоявшемуся в настоящие время стилей программирование, и в каждом из стиле своя модель вычислений, то языки программирования можно разделить на такие классы:

- Процедурные языки программирование – это программы, которые состоят из последовательности операторов, инструкции, задающие задачи. Главным квалификационным признакам для этого класса считается уровень языка. За начало уровня языков берётся машинный язык, который равен нулю. А язык человека считается наивысшим уровнем.

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

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

- Объектно-ориентированные языки программирование – У таких языков есть корни, которые выходят и ветви Логического программирования, в котором первичной является не отношения, а объект. Один из прототипом объектно-ориентированного языка является SIMULA-67. Этому стилю программирования характерно богатым графическими возможностями и средой программирования, и модульной структурой программ. Модальность упрощает разработку сложных программных продуктов.

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

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

- Транслятор – он представляет собой программу, и на этой основе машина преобразует вводимые в нее программы на машинный язык.

Трансляторы бывают двух видов.

- Интерпретаторы – это программа, которая переводит каждую команду с одновременным её выполнением и, если происходит ошибка, то он сообщает о неё и прекращает работу программы.

- Компиляторы – это программа, переводит всю программу целиком и в конце работы выводит список ошибок, если они были.

Двоичный язык – в современности он больше не используется программистами.

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

Язык Modula 2 - разработана в 1978 году для создания системного программного обеспечения. Является развитиям Паскаля. Особенности это, высокая модульность программ и наличия средств описания параллельных процессов.

Язык Abb – относят к процедурным языкам программирования. разработан в 1979 году, по заказу Министерства Обороны США, использовался во стройных системах с управляющими ЭВМ, и для этого нужна поддержка режима в реальном времени.

Язык logo – разработана в 1967 году с целью обучения детей. Отличается простотой, но с богатыми возможностями, такие как процедурные, графические средства и другое.

Язык ассемблера – создана ради удобства и представления символической форме программ, написанная на машинном языке.

Язык C – относят к Процедурным языкам программирования. Самый распатроненный и известный язык программирования, большинство профессиональных программистов умеют на нем работать. Большое количество программ написана на этом языке, исторически он связан с UNIX. В 60 годы была становления операционных систем и языков высокого уровня. Язык разработали, Кеннет Томсон и Деннис Ричи, и язык работал так чтобы писать системные задачи. Но из-за нехватки типов данных и объектов обработки исключений, то уже в начале 80 годов Бьерн Страуструп начал разрабатывать расширенный вариант C. И первый коммерческий транслятор появился в 1983 году, и назывался он С++. Одно из главная целей были, увеличить процент повторного использования написанного кода. Когда появилась Java, на него обратили многие программисты внимания, им казалась что этот язык очень похожим на C++ и даже кто-то называл его Убийце C++, но этого не произошло, и они пошли по разным дорогам.

Язык Erlang – это функциональный язык программирования. В середине 1980 года, лаборатория Ericsson поручили задачу найти подходящий язык для разработки приложений нового поколения. Два года Джо Армстронг, Роберт Вирдинг, Майкл Вильямс и руководитель этой команды Бьёрна Дакера, они занимались быстрым анализом телекоммуникационными приложениями на всех тогда существующих языках программирования. И пришли к выводу что подходящего языка дял их задачи нет, поэтому было решено разработать свой. И язык был разработан к 1994 году, а в 1995 были решены проблемы прошлой версии. Этот язык создан для решения определенных задач, создания распределённых, устойчивых к отказу систем и все это в реальном времени.

Язык Pascal – относят к процедурным языкам программирования. Первая версия разработан в 1968 году. Язык назван в честь французского учёного физика-математика Блеза Паскаля, этот язык воплотил в себе идею структурного программирования, и суть заключается в том, что с помощи простых конструкций можно выразить любые алгоритмы и различные, циклические, витиеватые и другие конструкции.

Язык Delphi – относят к Объектно-ориентированные языки программирования. Это по факту как Visual Pascal. Благодаря созданию среды программирования, теперь пористые программы может писать многие пользователи.

Язык Basic – Является высокоуровневым языком программирования. Был процедурным языком программирования, потом с появлений Visual Basic стал Объектно-ориентированным языком программирования. Это язык один из самых старых языков программирования. Его создатели это – Джон Кемени и Том Куртц, они работали 1964 году в Дортмундском колледже. Свой язык они решили назвать по первым буквам слова, «Beginner’s All Purpose Symbolic Instructions Code». Basic был первым программным продуктом многим известной фирмы Microsoft. Уже в середине 80 годов фирма разработала QuickBASIC, но это уже был не интерпретатор, а компилятор. После появления визуальны средств разработки программ, появился Visual Basic.

Язык Prolog – это язык логического программирования. Разработанный в начале 1970 года, Аланом Кулмероэ и Филипом Русселом, университет во Франции, Марсель. Язык основан не на алгоритме, а на логике предикатов. Программы на процедурных языках — это последовательность шагов, которые заданы в определённом порядке, а Prolog, будучи декларативным языком, то он содержит тока описания задачи, а Prolog-машина исполняет поиск решения, и руководствуются только описанием и используя механизм поиска с возвратом и унификацию.

Язык Fortran (Formula Translator) – относят к объектно-ориентированным языкам программирования. Это один из старейших языков программирования, разрабатывался с 50 годов. Его разработала исследовательская группа под руководством Джона Бэкуса. Названия происходит от двух слов, FORmula TRANslation. Первая версия для компьютера IBM была выпущена в начале 1957 году. Особенностью языка была в специфической форме записи программ. Текс программ писался в ограниченном числе, равным 80 символов, что соответствовала с размером перфокарты. Считается что этот язык был «Рабочей Лошадкой» научных сотрудников, из-за своей приспособленности к видению сложных вычислений и до сих пор используется, и модернизируется, FORTRAN IV, FORTRAN 77, FORTRAN 91 и так далее.

Java – это объектно-ориентированный язык программирования. Один из самых известных языков программирования. Первая рабочая версия появилась в 1996 году, в кампании Sun Microsystems, которую в будущем поглотит компания Oracle. Этот язык задумывался как универсальный язык программирования, который можно было выполнять разные задачи. И на данный момент язык пережил многие годы, было издано много различных версий Java. На данный момент Java стала не просто универсальным языком, а в целую платформу и экосистему, которая объединяет многие технологии, для решения разных задач. Главной особенностью языка является то, что её код сначала траслируеться на байт-код, а потом выполняет это байт-код в виртуальной машине JVM (Java Virtual Machine). В этом плане java отличается от стандартных интегрируемых языков, таких как PHP и Perl. В тоже время язык не является компилирующим как C и C++.

HTML (Hyper Text Markup Language) – Язык разметки гипертекста, многие уже давно считаю его не просто языком программирования. По причине того, что само понятия HTML включает в себя различные методы оформления гипертекстовых документов, включая себя дизайн, гипертекстовые редакторы, браузер и многое другое. Этот язык связан с WEB-программированием. Пользователей который сможет освоить его сможет делать серьезные вещи простыми методами, это для современности очень хорошее достоинство. В основном его используют для создания сайтов.

Язык ADA – Является универсальный высокоуровневой язык программирования. По сложности этого языка программирования сравнивают с C++. Его разработали в 1979 году для «аналоговых машин», по конкурсу Министерства Обороны США. ADA – Этот язык был модульным и объектным, но это не Объектно-ориентирований. Из-за развития объектно-ориентированное программирования появилась новая версия ADA95.

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

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

Глава 2 Интегрированные Среды Разработки

Интегрированная Среда Разработки (Англ. Lntegrated Development Environment) IDE/ИСР – это совокупность программных средств для создания, и она поддерживает на всех этапах разработки программного обеспечения, начиная написания исходного текста, заканчивая компиляцией и отладкой, и одновременно обеспечивающие просто и быстрое взаимодействия между инструментальными средствами. (То есть программным отладчиком-симулятором и программистом).

Из-за быстрого развития вычислительной техники, нужда в эффективных средствах разработки ПО привела к появлению системы «Быстрой разработки» RAD-Системы (Англ. Rapid Application Development – Среда Быстрой Разработки Приложений), в подобных системах в основном используется визуальное проектирования и событийного программирования. Суть RAD-систем в том, чтобы рутинную работу делал не программист, а среда разработки, а программисту остаётся тока конструирования экранных форм и функция обработки событий. И исходя из этого можно сказать, что программист со RAD-системой имеет высокую производительность.

Кроссплатформенность программное обеспечения, или просто кроссплатформенность – это Программное Обеспечения (ПО), работающее более чем одного аппаратной платформе и/или Операционной Системой (ОС).

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

- Редактор кода – это программная система, которая обеспечивает первоначальную подготовку исходного текста и его исправления во время разработки. В отличии от универсальных текстовых процессоров (Один из известных MS World), а редакторы кода специализируются на исходные текстовые программы. В данный момент существуют много различных редакторов кода, начиная от простого набора текста, заканчивая автоматическим форматированием с учетом правилами оформления кода, для разлечных языков программирования.

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

- Отладчик – нужен для отладки программ. Синтаксические ошибки допускают многие программисты, новички и профессионалы. Отладчик являться тестировщиком программ, он выявляет логические ошибки. Компилятор создает объектный код, обычно он содержит «дыры» из-за этих частей отладчик связывает объектный код с отсутствующих функций, это нужно чтобы создать исполняемый загрузочный модуль, который будет без «дыр». В итоги создаться файл с расширений, оно зависит от операционный системы для Windows это .exe, для Linux это .out.

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

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

- Visual Studio – это набор инструментов для создания программного обеспечения или Быстрая Среда Разработки (RAD) от кампании Microsoft, базирующаяся на платформе .NET. .NET Framework – это платформа для построения и использования приложений, она облегчает написания надёжного программного кода в сжатые сроки. Можно планировать, разрабатывать пользовательский интерфейс, писать код, тестировать, анализ качества кода и производительности и так далия. При помощи этой среды разработки можно создавать:

- Приложения, игры, которые могут использоваться как на Windows, так и на Андроиде и IOS.

- Веб-сайты, веб-службы на основе ASP.NET, JQuery, AnngularJS и другие.

- Приложения для различных платформ, Office, HoloLens и Интернет Вещей.

- Графические приложения для устройств Windows, Xbox, с поддержкой DIirectX.

(Рис.2 Интерфейс Visual Studio)

- Android Studio – это относительно новая IDE/ИСР (Интегрированная среда разработки) от компании Google для разработчиков на ОС Андроид и есть версия ОС Windows. Андроид Студия основана на InetelliJ IDEA, это тоже ИСР, и она тоже сделана для разработки на Андроид. Из-за большой роли java функции и методы будут написаны именно, основанные на языке java:

- MainActivity.java – это класс активити, то есть это то, что видит пользователь при запуске приложения. В нем используются стандартные методы, которые позволяют отобразить нужное содержимое, а также метод takeScreenshot (это нужна для получения скриншотов с ключевыми словами в тексе)

- BinarizationActivity.java – это класс активити, который средствами выбора пользователя и параметров запускает алгоритмы по обработке изображения.

- GystogramActivity.java – это отображения получения гистограмма на весь экран.

- Binarize.java – это реализация методов, которое позволяют получать из цвета изображения полутоновые, а дальше бинарные.

- ColorWordsProcesso.java – это сегментация слов, который может красить их в разные цвета.

- Recognizer.java – это исполнитель распознавания ключевых слов среди кандидатов, которые были получены на предыдущих этапов.

Пример интерфейса Android Studio.

(Рис.3 Интерфейс Android Studio версии 1.0.1)

- XCode – это IDE, то есть Интегрированная Среда Разработки по созданию приложений для iOS и OS X. Это важный инструмент для программистов которые разрабатывают программное обеспечения для Appel. В нем встроенные симуляторы iPhone, Apple Watch и Apple TV. XCode исполузует язык C, C++, PHP, Perl, Swift, AppleScript и другие языки программирования, известные или мало известные. В ней есть такие возможности как:

- Xcode IDE (Кодировка, создания и отладка приложений)

- Interface Builder (Разработка пользовательского интерфейса)

- Инструменты для анализа поведения и производительности

- Interface builder – это средства для разработки пользовательского интерфейса, является частью Интегрированной среды разработки (IDE)

Интерфейс Xcode на данный момент. (см. Рис.4)

(Рис.4 Интерфейса Xcode)

- IntelliJ IDEA – Это интегрированная среда разработки (IDE) программного обеспечения (ПО), на многих языках программирования, и в частности Java, JavaScript, Python. Разработана компанией JetBrains – это IT-компания, мировой производитель Программного Обеспечения. С 2007 года с версии 9.0 доступные две версии, Community Edition и Ultimate Editi.

- Community Edition – Является свободной версией, доступной по лицензии Apache 2.0.

- Умное автодополнение, инструменты длф анализа качества кода, удобная навигация, расширения рефакторинги и форматирования для Java. Groovy, Scala, Clojure, Clojure и Erlang.

- Профессиональный набор инструментов для разработки приложений Android.

- Поддержка JavaFX 2.0? интеграция с SceneBuilder. И дизайнер интерфейса для Swing.

- Интеграция с атематическими инструментами сборки и управления проекта, такие как Maven, Grable и другие.

- Интеграция для тестирования с поддержкой Junit, TestNG, Spock, ScalaTest и spec2.

- Интеграция со системами управления версиями, такие как Git, Subversion, Mercurial и CSV.

- Ultimate Editi – версия ИСР для создания коммерческих приложений.

- Умный автодоополнение, инструменты для анализа качества кода, удобная навигация, расширения рефакторинга и форматирования для Java, Groovy, Scala, HTML, CSS, JavaScript, CoffeeScript, ActionScript, XML и многие другие языки.

- Поддержка популярных фреймворков и платформ, включая Java EE, Spring Framework, Grails, Play Framework и многие другие.

- Интеграция с серверами, такими как Tomcat, TomEE, GlassFish, JBoss, Resin и многие другие.

- Интеграция с коммерческими системами управления версиями, Perforce, Team Foundation Server и так далия.

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

Интерфейс IntelliJ IDEA на данный момент. (см. Рис.5)

(Рис.5 Интерфейс IntelliJ IDEA)

- Embarcadero Delphi – это среда быстрого разработки приложений (RAD). В названии фигурирует язык Delphi – это язык общего назначения, он основан на диалекте Object Pascal, а ядром является Borland Turbo Pascal. С этим языком поставляется своя Среда разработки. Он позволяет создавать кросс-платформенную разработку (То есть скомпилированную) приложений из одной базы кода. В настоящие время поддерживает такие Операционные Системы. Windows, OSX, iOS и Android. Этот ИСР поставляется две визуальные структуры.

- VCL (Visual Component Library), она спирально разработана для Операционной Системы Windows, обретает собственные средства управления Виндовс и поддерживает создания пользовательских.

- FMX Межплатформенная платформа FireMonkey для всех поддерживаемых платформах.

Интерфейс Embarcadero Delphi 10.3 Rio на данный момент. (см. Рис.6)

(Рис.6 Интерфейс Embarcadero Delphi 10.3 Rio)

- Eclipse (с англ. Затмения) – это один из лучших инструментов созданные за последние годы для Java. SDK Eclipse представляет собой Интегрированную Среду Разработки (ИСР/IDE), с открытым исходным кодом. Создателем выступает Object Technology International (OTI), которую потом купят IBM. По факту Eclipse это просто платформа, которая позволяет разрабатывать дополнительные плагины, которые естественным образом встраиваться в платформу. Следующие языки используются в ИСР, C/C++, HTML, Cobol, Perl, Ruby и другие.

- Инструменты Eclipse Java включает в себя редактор исходного кода (Создания и редактирования), средства отладки и интеграция с Ant.

- Есть как бесплатные, так и платные дополнения (Палагины), например, как инструментальные средства создания схем UML, разработка без данных и многие другие.

Интерфейс Интегрированной Среды Разработки Eclipse на момент 2018 года. (см. Рис.7)

(Рис.7 Интерфейс Eclipse 2018 года)

Появления Интегрированных Сред Разработки (ИСР/IDE) связаны с несколькими факторами. Это стремления человека автоматизировать свой труд, как и в производстве, так и программировании. Ну и на данный момент времени, внешний вид значит не малое, раньше это все было в новинку, поэтому сильно на это не обращали внимания, но прошло не мало времени.

Если обобщить, теперь нужно не тока сделать хорошие Содержания, но и хорошо оформить визуально. ИСР как раз токи и есть эта формула.

Глава 3 Языки разработки программ и парадигмы

В предыдущий главах я пытался не касаться подробного описания языков программирования и принципов, но оставлять это без внимания нельзя. Я опишу как работают некоторые языки, которые созданы для разработки программ, возьму такие языки как C, Java…

Но перед тем, как описать языки с точки зрения программирования, нужно знать основные принципы программирования.

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

Есть четыре основные парадигмы, на них написанные большинство сегодняшних методов программирования, императивная, аппликативная, основанная на системе правил и Объектно-ориентированная.

- Императивная парадигма – это последовательность выполнения операторов программ и процедур. Это система выходит из-за особенности аппаратной части стандартного компьютера, исполняющий команды последовательно. На основе него разработано операторно-ориентированные языки программирования, на нем разработаны FORTRAN, ALGOL, PL, Basic, C, Pascal, Ada, Smalltalk, COBOL.

- Аппликативная парадигма – это функции, которые выполняют программу, и какую функцию нужно пременить к начальному состоянию машины.

- Парадигма, основанная на системе правил – Языки, которые основаны на этой парадигме, которые осуществляют проверку наличия необходимого разрешённого условия, в случаи нарушения правила, то выполняется соответственное действия.

- Объектно-ориентированная парадигма – В этой системе стариться сложные объекты данных. Для операций определяется несколько ограниченных методов. Созданные объекты могут наследовать свойства более простые объекты.

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

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

  1. Частный принцип. – Основан на выделении из алгоритмов и данных особых групп по частности их использования. Для действий, которые наиболее часто встречаются при работе программ, создаться условия быстрого выполнения.
  2. Принцип модульности. – Под модулем в этом контексте является функциональность элементов рассматриваемой в системе, и имеющий средства сопряжения с подобными элементами или более высокого уровня элементы данной или другой системе.
  3. Принцип функционального изобретательности. – Он является логическим продолжателем частного и модульного принципа, используется при проектировании программ. В программах выделяются некоторая часть модулей, которые постоянно должны быть в состоянии готовности для эффективной организации вычислительных процессов.
  4. Принцип генерируемости. – определяет такой способ исходное представления программы, который бы позволял осуществлять настройку на конкретную конфигурацию технических средств, круг решения проблем, условия работы пользователя.
  5. Принцип функциональной избыточности. – принцип заключается в тои что бы учитывать возможность провидения одной и той же работы различными средствами.
  6. Принцип «По умолчанию». – применяется для облегчения организация связей с системой как на стадии генерации, так и на стадии работы с готовыми программами. Этот принцип основан на хранение в системе некоторые базовые описания структур, модулей, конфигурацию оборудования и данных, определяющий условия работы с программой.

Общесистемные принципы программирования.

  1. Принцип включения. – Этот принцип предусматривает, что требования к созданию, функционированию и развитию Программного Обеспечения (ПО) определяется со стороны более сложной, вклиняющий в себя его системы
  2. Принцип системного единства. – Он состоит в том, что на всех стадиях создания, функционирования и развития ПО целостность будет обеспечиваться связями между подсистемами, а также функционированием под системного управления.
  3. Принцип развития. – Он предусматривает то, что у ПО есть возможность его наращивания и совершенствования компонентов и связей между собой.
  4. Принцип комплексности. – Его суть заключается в том, что ПО обеспечивает связанность обработки информации как отдельный элемент, и всего объема данных в целом на всех стадиях обработки.
  5. Принцип информационного единства. – Во всех подсистемах, средствах обеспечения и компонентов ПО используется единые термины, символы, условные обозначения и способы обработки.
  6. Принцип совместимости. – Который заключается в том, что язык, символы, коды и средства программного обеспечения согласованы, тем самым обеспечивая совместное функционирования всех подсистемах и сохраняя открытый доступ в структуры системы в целом.
  7. Принцип инвариантности. – предопределяющий, что подсистема и компоненты Программного Обеспечения инварианты к обрабатываемой информации, то есть являются универсальными или «топовыми».

– Язык программирования С – Си относят к относительно языкам «Низкого Уровня», в этом нет нечего оскорбительного, это просто значит, что Си имеет дело с объектами такого вида, что и большинство старых ЭВМ, а точней, со символами, числами и адресами. Они могут объединиться и пересылать посредством обычных арифметических и логических операций, которые осуществляют реальные ЭВМ. В языке Си отсутствовали так называемые операции, имеющие непосредственное дело со составными объектами, такими как строки символов, множества, список или массивы, рассматриваемые как единое целое. Например, не было никакого аналога операции «PL/1», которое оперируют с целыми массивов и строками. Язык не представляет никаких возможностей распределить памяти, кроме статического определения и механизма стеков, которые обеспечивают локальные переменные функции, и нет так называемых «Куч» (Heep), не «Сборки Мусора», как это предусматривалась в АЛГОЛЕ-68. Ну и сам по себе Си не обеспечен никакой возможностью ввода-вывода, нет операторов «read» или «write» и не каких встроенных методов доступа к файлам. Все эти механизмы находиться в языках «Высокого Уровня».

А язык Си предлагал тока простые, последовательные конструкции потоков управления, проверки, циклы, группирование, подпрограммы, но не мультипрограммирования, то есть, параллельные операции, синхронизацию или сопрограммы.

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

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

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

Язык Си оказал большое влияния на разработку программного обеспечения, и на его основе синтаксиса были созданы, такие языки как С++, C#, Java и другие.

- Язык C++ – Язык Си++ уже был языком «Высокого уровня» и брал за основу объектно-ориентированный подход к программированию, был разработан в результате расширения и дополнения языка Си. В этом языке были лучшие свойства Ассемблера и языка «высокого уровня». Компактность и скорость выполнения программы на языке Си++ приближена к программам, написанным на языке ассемблер. На ряду с этим Си++ полностью поддерживает технологию структурного программирования. Фирма Borland International создала несколько компиляторов для C++. Но для изучения особенности языка не обязательно иметь последнею версию компилятора. К основным особенностям языка Си++ относят, возможность разделения программы на легко поддающиеся контролю, за счет определения новых пользовательских типов, наличие классов, которые обеспечивают скрытие данных и их инициализацию, управления памятью, и механизмом перезагрузки операции и функции. Программа на Си++ состоит из одной или больше функций, которые содержат переменные, константы, операторы, которые нужны для решения определенных задач. В языке включены оригинальные операторы присвоения и выбирающие. Циклы «До» и «С параметром», немного отличаться от привычных алгоритмов, выход их цикла осуществляется по условию «Нет», как и в паскале 7.0, операторы отделяться друг от друга точкой с запитой.

- Язык C# (Читаются и произноситься как «Си-Шарп») – это объектно-ориентированный язык программирования и поддерживающий компонентной-ориентированный, который разработанные компанией Майкрософт под платформу .NET. Язык Си-Шарп специально создан под эту платформу, и поэтому в нем отсутствуют проблемы со совместимостью с предыдущим версиям языка. Разработка приложений на языке Си-Шарп ведется в платформе Visual Studio.NET и Visual C++. NET Runtime – В этой среде выполняется кода, полученный после компиляции программы, написанной Си-Шарп. Это среда выполнения основана на ассемблере (То есть код, который является родным для процессора), а на промежуточной коде. Поэтому для данной Среды возможна использования нескольких языков. Самая важная особенность была, такие как, модель программирования на основе свойств, методов, событий. Каждый компонент имеет атрибуты, представляющие декларативные сведенья, а также встроенные элементы документации. Тока несколько функций Си-Шарп, обеспечивающих надежность и устойчивость приложений, такие как, сборка мусора, автоматически освобождает память, занятую уничтоженным и неиспользуемыми объектами, обротка исключений представляет структурированный и расширяемый способ выявлять и обработка ошибок, строгая типизация языка не позволяет обращаться к неинициализированным переменным, выходя за рамки индексируемых массивов или выполнять неконтролируемое приведение типов. В Си-Шарп существуют «Единая система типов». Все типы включая типы-примитивы, такие как «int» и «double», они следуют от одного корневого типа «object». Таким образом, все типы используют общий набор операций, значения любого типа можно хранить, передавать, обрабатывать похожим способом. Чтобы обеспечить совместимость программ и библиотек «Си-Шарп», при разработки много уделено управлению версиями.

Язык Java – Одни из основных преимуществ языка Java, была независимость от платформы, на котором выполняются программы, один и тот же код можно запускать под управлением операционных системах Windows, Solaris, Linux, Machintosh и многие другие. И это необходимо, когда программы загружаются через Интернет для последующего выполнения под управлением разных оперативных систем. Другое преимущества в том, что синтаксис похож на Си++, тот кто знает Си или Си++, то и просто будет изучить язык Java. Но кто имеет Visual Basic, этот синтаксис будет не привычен.

И нужно отметить, что Java – это полностью Объектно-ориентированный язык программирования, даже больше, чем Си++. Вся сущность Java является объектным, но есть исключения (primitive types), например чисел. Поскольку с помощи объектно-ориентированного программирования можно легко делать сложные проекты, и благодаря этому оно заменила собой структурное программирования.

Программы написанные на Java работают таким образом, программа транслирует в «Байт-код», выполняемой «виртуальной машиной Java» (Java VM, JVM), программой, обрабатывающей «байт-код» и передающий инструкции оборудованию как интерпретатор.

Главным недостатком Java является то, что в отличии от Си++ или Delphi, это то, что все же Java это не компилятор, а больше интерпретатор. Ну и она проигрывает в скорости, той же самый Си++ и занимает в среднем в 10 раз больше памяти.

Java является базовым языком программирования для операционной системы Android. Но привязывать язык Java к одной из ОС, не будем. (См. Рис.8)

(Рис.8 жизненный цикл разработки и запуска программы на Java)

Исходный текст Java-программы должна быть файлом с расширением «.java». Для компиляции программы в «Байт-код» используется программа «javac» из JDK6.

Файлы «байт-кода» исполняются как было сказано, виртуальной машиной Java, JVM. Для каждой операционной системы или устройства разрабатывается своя Java VM, но от этого байт-код программы отстояться неизменным. (См. Рис.9)

(Рис.9 Запуск приложений на различных платформах при помощи Java VM)

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

Это значит то что основная конструкция языка Java, главный объект, с которым можно что-то делать – это класс. У каждого класса есть характеристика, так называемом полями (Другими словами Переменные) и умения что делать, так называемые методами (Или функция). На рисунке изображен текст просто программы. (См. Рис.10)

(Рис.10 Текс простой программы на языке Java)

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

Заключения

Ну и в заключении я могу сказать, что у языков программирования есть парадигмы по котором они создаются, каждый язык создан ради определённой задач, и они развивались вмести с ЭВМ, и развития шло к упрощения и к удобности языка программирования, самого начала были придуманы Ассемблеры чтобы сделать коммуникацию ЭВМ и человека, потом пришли языки более высокого уровня, что вызвало появления классификации и парадигм, где со временем преобладать стал объектно-ориентированное программирования, потом появилась Интегрированная Среда Разработки, это было вызвано желаниям убрать рутину из программирования, и вот мы сегодня, развития идет, и неизвестно что будет завтра.

Список литературы

  1. Германович, В.В Классификация и характеристика современных языков программирования/ В.В. Гедронавич, Б.А. Гедранович:
    Минск: Изд-во МИУ, URL:https://i5t.ru/images/pdf_files/programmirovanie/genderovich_yz_prog.pdf 2011. - 344 с.
  2. Брайн Керниган, Деннис Ритчи Язык программирования Си/ Брайн Керниган, Деннис Ритчи, URL: https://www.r-5.org/files/books/computers/languages/c/kr/Brian_Kernighan_Dennis_Ritchie-The_C_Programming_Language-RU.pdf 1978. - 8 с.
  3. С.В Вабищевич Язык программирования Pascal/ Вабищевич С.В, Краткий курслекций URL:https://phys.bspu.by/static/um/inf/prg/lecpdf/pascal1s.pdf - 2 с.
  4. Хабаров С.П. Prolog – язык разработки интеллектуальных и экспертных систем/ С.П. Хабаров: Санкт-Петербуржский государственный университет им. С.М. Кирова, URL: http://www.habarov.spb.ru/book_prolog_2013/SerpBook_Prolog.pdf 2013. – 5-6 с
  5. Интегрированная среда разработки Visual Studio URL: https://technet.microsoft.com/ru-ru/office/dn762121(v=vs.85)
  6. Начало работы с Android Studio URL: https://code.tutsplus.com/ru/tutorials/getting-started-with-android-studio--mobile-22958
  7. 10. Интегрированные среда разработки: Вуз комсомольский-на-Амуре Государственный Технический Университет. URL: https://studfiles.net/preview/5918053/
  8. 10. Интегрированные среда разработки: Вуз комсомольский-на-Амуре Государственный Технический Университет. URL: https://studfiles.net/preview/5918053/
  9. Понятия интегрированной среды разработки: Вуз Московский технический университет связи и информации. URL:https://studfiles.net/preview/3528305/page:3/
  10. Первые шаг в разработки приложений под Мас. URL: https://macdays.ru/soft/review-installation-of-xcode/
  11. Основные средства разработки программ. URL: https://studfiles.net/preview/3528305/page:2/
  12. Программная реализация. URL: https://studfiles.net/preview/6231232/page:6/
  13. Многофайловая организация программ. URL: https://studfiles.net/preview/2919300/
  14. Среда Xcod и plyground-проекты. URL: http://storage.piter.com/upload/contents/978549602256/978549602256_p.pdf 1-2 с.
  15. IntelliJ IDEA. URL: https://bmstu.cloud/docs/software/intellij-idea/
  16. Введения в Java/Язык программирования Java. URL: https://metanit.com/java/tutorial/1.1.php
  17. Основы языка WEB программирования HTML. URL: https://info-comp.ru/programmirovanie/69--web-html.html
  18. Бесплатная электронная книга/Учись Embarcadero Delphi, URL: https://riptutorial.com/Download/embarcadero-delphi-ru.pdf -2 с.
  19. Глава 1. Среда разработки приложений Eclipse, URL: https://studfiles.net/preview/3731479/page:2/
  20. Тема 7. Программное обеспечение и технологии программирования Лекция 14. Технологии программирования и принципы разработки программного приложения, URL: https://studfiles.net/preview/2059940/page:17/
  21. 1. Назначение некоторые особенности языка, URL: https://studfiles.net/preview/1582894/
  22. Медведев М.А, Медведев А.Н. Программирования на Си#/ М.А. Медведев, А.Н. Медведев
    Уральский федеральный университет им. Первого президента России Б.Н.Ельцина, URL: http://elar.urfu.ru/bitstream/10995/36057/1/978-5-7996-1561-1_2015.pdf 2015. - 3 с.
  23. Краткий обзор языка C#, URL: https://docs.microsoft.com/ru-ru/dotnet/csharp/tour-of-csharp/
  24. ЛЕКЦИЯ №1. Введения в Java. URL: http://k504.khai.edu/attachments/article/410/lect01_java_android_ponom.pdf

Приложение

  1. Словарь «Академик», слова парадигма URL: https://dic.academic.ru/dic.nsf/logic/266
  2. Словарь «Академик», слова кроссплатформенность URL: https://dic.academic.ru/dic.nsf/ruwiki/989953
  3. Рис.1 Пример «Привет Мир» Источник: Классификация и характеристика современных языков программирования Германович, В.В
  4. Рис.8 жизненный цикл разработки и запуска программы на Java Источник: ЛЕКЦИЯ №1. Введения в Java.
  5. Рис.9 Запуск приложений на различных платформах при помощи Java VM Источник: ЛЕКЦИЯ №1. Введения в Java.
  6. Рис.10 Текс простой программы на языке Java Источник: ЛЕКЦИЯ №1. Введения в Java.