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

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

Содержание:

Введение

Актуальность программирования и разработки программ на современном этапе обусловлена : а/ ситуация в сфере профессиональной деятельности ( возрастание роли IT в промышленности и СХ, появления новых отраслей) б/ принятие на государственном уровне Стратегии развития отрасли информационных технологий в Российской Федерации.

В конце XX в. человечество вступило в новую стадию разви­тия — стадию построения информационного общества. Информация стала важнейшим фактором экономического рос­та, а уровень развития информационной деятельности и степень вовлеченное. 1) и влияния ее на глобальную информационную инфраструктуру прекратились в важнейшее условие конкурентоспособности страны в мировой экономике. Понимание неизбежности прихода этого общества наступило значительно рань­ше. Австралийский экономист К. Кларк еще в 40-е гг. говорил о наступлении общества информации и услуг, общества с новыми технологическими и экономическими возможностями. Амери­канский экономист Ф. Махлуп выдвинул предположение о на­ступлении информационной экономики и превращении инфор­мации в важнейший товар в конце 50-х гг. В конце 60-х гг. Д. Белл фиксировал превращение индустриального общества в информационное. [1]

Для создания курсовой работы использовался материал из учебников для студентов учреждений высшего профессионального образования и ВУЗов, а также из книг о программировании написанными учеными и опытными программистами в том числе и разработчиками языков программирования. Эти литературные источники прошли строгое рецензирование, а значит, они более полны и достоверны, чем среднестатистические источники информации в сети.

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

В процессе написания данной курсовой работы должны решаться следующие задачи:

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

2. Определить критерии выбора среды разработки

3. Определить критерии выбора языка разработки.

Глава 1. Выбор языков программирования.

Если вы хотите научиться своими руками создавать сайты, свободно владеть HTML, CSS, JavaScript, PHP и MySQL. Большинство подоб­ных книг предлагают изучение или только клиентских технологий (HTML, CSS. JavaScript), или только серверных (PHP, MySQL). Но разделять эти технологии нельзя, т. к. они могут существовать только совместно, а значит, и изучать их нуж­но как единое целое.[2]

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

Когда - начиная с 1949 года - в мире появились первые электронные компьютеры с хранимыми программами. каждый из них имел собственный язык программирования. Существовало взаимно однозначное соответствие между выражением алгоритма (например, вычисления орбиты планеты) и командами конкретной машины. Очевидно. что ученый (пользователями чаще всего были ученые) писал математические формулы. но программа представляла собой список машинных инструкций. Первые примитивные списки состояли из десятичных или восьмеричных цифр. точно соответствовавших их представлению в машинной памяти. Позднее появились ассемблер и "автокоды"; иначе говоря, люди разработали языки. в которых машинные команды и машинное оборудование (например, регистры) имели символические имена.[3]

В 1948 году Дэвид Уилер написал первую реальную программу. которая когда-либо была выполнена на компьютере, хранившем программы в своей памяти (программа, вычислявшая таблицу квадратов; см. раздел 4.4.2.1). Он был одним из десяти людей, объявивших о создании первого компилятора (для машинно-зависимого автокода).

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

Появление языка Fortran в 1956 году является наиболее значительным событием в истории языков программирования. Fortran - это сокращение от "Formula тranslatlon" (трансляция формул). Его основная идея заключалась в генерации эффективного машинного кода из текста.

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

Язык Fortran пользовался огромным успехом в области научных и инженерных вычислений, для которых он, собственно, и предназначался. С момента своего появления он постоянно эволюционировал. Основными версиями языка Fortran являются версии 11, IV, 77, 90, 95 и 03. причем до сих пор продолжаются споры о том, какой из языков сегодня используется чаще: Fortran77 или Fortran90.

Первое определение и реализация языка Fortran были выполнены коллективом сотрудников компании IВМ под руководством Джона Бэкуса (John Backus): "Мы не знали, чего хотели и как это сделать. Язык просто вырастал". До сих пор никто ничего подобного не делал, но постепенно они разработали или открыли основную структуру компилятора (лексический, синтаксический и семантический анализ), а также оптимизацию.

Среди открытий, сделанных после появления языка Fortran, была система обозначений для определения грамматики: форма Бэкуса-Наура. Впервые она была использована в языке Algol60 и в настоящее время используется в большинстве современных языков.[4]

Таких как C и C++, JavaScript, Python, Java, и т.д

Безусловно С++ многим обязан языку С , который сохраняется как его подмножество. Сохранены и все свойственные С средства низкого уровня, предназначенные для решения самых насущных задач системного программирования. С, в свою очередь, многим обязан своему предшественнику языку BCPL . Комментарий языка BCPL был восстановлен в С++. Если читатель знаком с языком BCPL, то может заметить, что в С++ по-прежнему нет блока VALOF. Еще одним источником вдохновения был язык SIMULA-67 ; именно из него была заимствована концепция классов (вместе с производными классами и виртуальными функциями). Оператор inspect из SIMULA-67 намеренно не был включен в С++. Причина – желание способствовать модульности за счет использования виртуальных функций. Возможность в С++ перегрузки операций и свобода размещения описаний всюду, где может встречаться оператор, напоминают язык Алгол-68 .[5]

Выбор С в качестве базового языка для С++ объясняется следующими его достоинствами: (1) универсальность, краткость и относительно низкий уровень; (2) адекватность большинству задач системного программирования; (3) он идет в любой системе и на любой машине; (4) полностью подходит для программной среды UNIX.[6]

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

Последовательность инструкций (начинаемая программой, скриптом или сценари­ем) выполняется интерпретаторам* встроенным в сам Web-браузер. Иными сло­вами, код программы внедряется в HTML-документ и выполняется на стороне кли­ента. Для выполнения программы даже не нужно перезагружать Web-страницу. Все программы выполняются в результате возникновения какого-то события. Например, перед отправкой данных формы можно проверить их на допустимые значения и. если значения не соответствуют ожидаемым, запретить отправку данных.[7]

РНР — это язык программирования, выполняемый на стороне сервера. РНР в отли­чие от языка JavaScript не зависит от программного обеспечения клиента и потому будет выполнен в любом случае.

Последовательность инструкций (называемая программой или скриптом) выпол­няется интерпретатором языка РНР. Код программы может внедряться в HTML-код. Эта возможность отличает РНР от других языков, используемых в Интерне­те, например от языка Perl. PHP-код обрабатывается на сервере до того, как стра­ница будет передана Web-браузеру. В итоге Web-браузер получит обычный HTML-код или другой вывод.

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

Операторы позволяют выполнить определенные действия с данными. Например, операторы присваивания служа!' для сохранения данных в переменной, математи­ческие операторы позволяют произвести арифметические вычисления, а оператор конкатенации строк используется для соединения двух строк в одну. [8]

HTML {HyperText Markup Language)— это язык разметки документа, описывающий форму отображения информации на экране компьютера. В настоящее врем; язык существует в нескольких версиях: HTML 4.01, XHTML и HTML 5.

Версию языка HTML 5 поддерживают сейчас следующие Web-браузеры:

□ Microsoft Internet Explorer — начиная с версии 9;

□ Mozilla Firefox — 4.0;

□ Google Chrome — 6.0;

□ Opera — 11.1;

□ Apple Safari — 5.0.

Как можно видеть, HTML 5 поддерживается уже всеми современными Web-брау­зерами, поэтому мы будем изучать именно его, без оглядки на предыдущие версии.

Для новых тегов и параметров, появившихся в HTML 5, мы будем явно указывать версию языка. 11оэтому, если у вас есть большое желание поддерживать старые версии Web-браузеров, то теги и параметры, обозначенные версией HTML 5, лучше не использовать или предусматривать стилизацию новых тегов— например, опи­сывать их как блочные с помощью CSS-атрибута display (display: block) и/или создавать элементы в JavaScript.[9]

Примечание

В HTML названия тегов и параметров можно записывать в любом регистре, а в языке XHTML только в нижнем регистре.

MySQL — это система управления реляционными базами данных. Сервер MySQL позволяет эффективно работать с данными и обеспечивает быстрый доступ к ин­формации одновременно нескольким пользователям. При этом доступ к данным предоставляется только пользователям, имеющим на это право.

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

Для выборки записей из базы данных разработан специализированный язык — SQL (Structured Query Language, структурированный язык запросов). С помощью этого языка можно создавать базы данных и таблицы, добавлять, изменять и удалять данные, получать данные по запросу. [10]

Системы программирования в области автоматизации технологи­ческих процессов и оборудования, как и везде, имеют свои особенно­сти. Существуют так называемые языки верхнего уровня (C++, Pascal, Delphi и т.д.). С их помощью можно написать программу для техноло­гического процесса, или, например, для расчета основных фондовых индексов, или систему «банк-клиент». Эти языки гибки, универсальны. [11]

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

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

В группе универсальных языков высокого уровня безусловным лидером на сегодня является язык С (вместе с C++). Действительно различные версии С и C++ имеют целый ряд очень существенных достоинств:

•многоплатформенность - для всех используемых в настоящее время платформ существуют компиляторы с языка С и C++;

•наличие операторов, реализующих основные структурные алгоритмические конструкции (условную обработку, все виды циклов);

•возможность программирования на низком (системном) уровне с использованием адресов оперативной памяти;

•огромные библиотеки подпрограмм и классов.

Все это сделало С и C++ основными языками, используемыми для создания операционных систем, и, в свою очередь, служит для них дополнительной рекламой. Однако С и C++ имеют и серьезные недостатки:

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

•наличие синтаксических неоднозначностей, которые также не позволяют компилятору контролировать правильность программы;

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

Альтернативой С и C++ среди универсальных языков программирования, используемых для создания прикладного программного обеспечения, на сегодня является Pascal, компиляторы которого в силу четкого синтаксиса обнаруживают помимо синтаксических и большое количество семантических ошибок. Версия Object Pascal, использованная в среде Delphi, сопровождается профессиональными библиотеками классов, упрощающими ведение больших разработок, в том числе и требующих использования баз данных, что делает Delphi достаточно эффективной средой для создания приложений Windows.

Кроме этих языков к группе универсальных принадлежат также Basic, Modula, Ada и некоторые другие. Каждый из указанных языков, так же, как C++ и Pascal, имеет свои особенности и, соответственно, свою область применения.

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

•языки баз данных;

•языки создания сетевых приложений;

•языки создания систем искусственного интеллекта и т. д.

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

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

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

В настоящее время языки типа Ассемблера обычно используют:

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

•в виде вставок в программы на языках высокого уровня, например, для ускорения преобразования данных в циклах с большим количеством повторений.[12]

Какие свойства языка программирования считаются желательными?

• Переносимость.

• Безопасность типов.

• Точная определенность.

• Высокая производительность.

• Способность точно выражать идеи.

• Легкая отладка.

• Легкое тестирование.

• Доступ ко всем системным ресурсам.

• Независимость от платформы.

• Возможность выполнения на всех платформах (например, в Linux. Windows, OS/2, в смартфонах, во встроенных системах).

• Устойчивость на протяжении десятилетий.

• Постоянное совершенствование в ответ на изменения, происходящие в прикладной области.

• Легкость обучения.

• Небольшой размер.

878 Глава 22 • Идеалы и история

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

• Средства, облегчающие анализ программ.

• Широкие возможности.

• Поддержка со стороны большого сообщества.

• Поддержка новичков (студентов, учащихся).

• Исчерпывающие возможности для экспертов (например, конструкторов инфраструктуры).

• Доступность большого количества инструментов для разработки программ. • Доступность большого количества компонентов программного обеспечения (например, библиотек).

• Поддержка со стороны сообщества разработчиков открытого кода.

• Поддержка со стороны поставщиков основных платформ (Microsoft, IВМ и т.д.).

Для еще более правильного выбора придуманы:

Критерии эффективности языков программирования.

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

Строятся критерии эффективности на основе частных показателей эффективности (показателей качества) Способ связи между частными показателями определяет вид критерия эффективности. В качестве частных показателей обычно выступают: ‰

читабельность (легкость чтения и понимания программ); ‰

легкость создания программ (удобство языка для создания программ в выбранной области); ‰

надежность (обеспечение минимума ошибок при работе программ); ‰

стоимость (суммарная стоимость всего жизненного цикла языка); ‰

переносимость программ (легкость переноса программ из одной операционной среды в другую); ‰

универсальность (применимость к широкому кругу задач); ‰ четкость (полнота и точность официального описания языка).

В свою очередь, каждый из частных показателей зависит от множества разнообразных характеристик.[13]

Возникает вопрос:

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

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

Фиксация того или иного количества критерии призвана обеспе­чить удобство использования / эффективность (по времени)разработки ПС

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

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

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

Создатели языков по-разному толкуют понятие язык программирования. К наиболее распространенным утверждениям, признаваемым большинством разработчиков, относятся следующие. Функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами. Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека компьютеру, в то время как естественные языки используются для общения людей между собой. В принципе можно обобщить определение языков программирования – это способ передачи команд, приказов, четкого руководства к действию, тогда как человеческие языки служат также для обмена информацией. Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.[14]

Ассемблер

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

Поколения ЯП

Поколения

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

Характеристика

Первое

Машинные  

Ориентированы на использование в конкретной ЭВМ, сложны в освоении, требуют хорошего знании архитектуры ЭВМ

Второе

Ассемблеры, Макроассемблеры

Более удобны для использования, но по-прежнему машинно-зависимы

Третье

Языки высокого уровня  

Мобильные, человекоориентированные, проще в освоении

Четвертое

Непроцедурные, объектно-ориентированные, языки запросов, параллельные

Ориентированы на непрофессионального пользователя и на ЭВМ с параллельной архитектурой

Пятое

Языки искусственного интеллекта, экспертных систем и баз знаний, естественные языки

Ориентированы на повышение интеллектуального уровня ЭВМ и интерфейса с языками

ЯП первого поколения представляли собой набор машинных ко­манд в двоичном (бинарном) или восьмеричном формате, которым оп­ределялся архитектурой конкретной ЭВМ. Каждый тип ЭВМ имел свой ЯП, программы на котором были пригодны только для данного типа ЭВМ. От программиста при этом требовалось хорошее знание не только машинного языка, но и архитектуры ЭВМ.

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

Третье поколение ЯП начинается с появления в 1956 г. первого языка высокого уровня — Fortran, разработанного под руководством Дж. Бэкуса в фирме IВМ. За короткое время Fortran становится основ­ным ЯП при решении инженерно-технических и научных задач. Перво­начально Fortran обладал весьма ограниченными средствами обеспече­ния работы с символьной информацией и с системой ввода-вывода. Од­нако постоянное развитие языка сделало его одним из самых распространенных ЯВУ на ЭВМ всех классов — от микро- до супер­ЭВМ, а его версии используются и для вычислительных средств нетра­диционной параллельной архитектуры.

Вскоре после языка Fortran появились такие ныне широко извест­ные языки, как Аlgol, Соbоl, Ваsiс, РL/1, Раscal, АРL, АDА, С, Forth, Lisp, Моdula и др. В настоящее время насчитывается свыше 2000 раз­личных языков высокого уровня.

Языки четвертого поколения носят ярко выраженный непроцедур­ный характер, определяемый тем, что программы на таких языках опи­сывают только что, а не как надо сделать. В программах формируются скорее соотношения, а не последовательности шагов выполнения алго­ритмов. Типичными примерами непроцедурных языков являются языки, используемые для задач искусственного интеллекта (например, Рrolog, Langin). Так как непроцедурные языки имеют минимальное число син­таксических правил, они значительно более пригодны для применения непрофессионалами в области программирования.

Второй тенденцией развития ЯП четвертого поколения являются объектно-ориентированные языки, базирующиеся на понятии про­граммного объекта, впервые использованного в языке Simulа-67 и со­ставившего впоследствии основу известного языка Smalltalk. Про­граммный объект состоит из структур данных и алгоритмов, при этом каждый объект знает, как выполнять операции со своими собственными данными. На самом деле, различные объекты могут пользоваться со­вершенно разными алгоритмами при выполнении действий, определен­ных одним и тем же ключевым словом (так называемое свойство полиморфизма). Например, объект с комплексными числами и массивами в качестве данных будет использовать различные алгоритмы для выпол­нения операции умножения. Такими свойствами обладают объектно-ориентированные Pascal Basic, С++, Smalltalk, Simulа, и ряд дру­гих языков программирования.

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

И, наконец, четвертым направлением развития являются языки па­раллельного программирования (модификация ЯВУ Fortran, языки Оссаm, SISAL, FР и др.), которые ориентированы на создание про­граммного обеспечения для вычислительных средств параллельной ар­хитектуры (многомашинные, мультипроцессорные среды и др.), в отли­чие от языков третьего поколения, ориентированных на традиционную однопроцессорную архитектуру.

К интенсивно развивающемуся в настоящее время пятому поколе­нию относятся языки искусственного интеллекта, экспертных систем, баз знаний (InterLisp, ExpertLisp, IQLisp, SIAL и др.), а также естествен­ные языки, не требующие освоения какого-либо специального синтак­сиса (в настоящее время успешно используются естественные ЯП с ог­раниченными возможностями — Clout, Q&А, НАL и др.).

Глава 3 Классификация сред программирования

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

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

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

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

Следующая группа — языки программирования высокого уровня. Это языки, которые допускают описание задачи в наглядном, легко воспринимаемом виде. Их отличительной особенностью является ориентация не на систему команд той или иной ЭВМ, а на систему инструкций, характерных для записи алгоритмов определенного класса. К языкам програм­мирования высокого класса относятся Бейсик, Фортран, Ал­гол, Паскаль, Си и др.[15]

К языкам программирования сверхвысокого уровня мож­но отнести Алгол-68, в котором сделана попытка формали­зовать описание языка, приведшая к появлению двух типов программ: абстрактной и конкретной. Первый тип программы — абстрактный — создается программистом, конкретный — выводится из первого. Существует предположение, что при таком подходе принципиально невозможно породить син­таксически (а на практике и семантически) неверную конк­ретную программу.

Алгоритмический язык Паскаль был разработан в 1973 г. швейцарским математиком Никлаусом Виртом для обучения студентов структурному программированию. Язык получил свое название в честь французского математика Блеза Паскаля (1623–1662). Выбор Паскаля для обучения программированию объясняется рядом его достоинств. Во-первых, этот язык полно отражает идеи структурного программирования. Во-вторых, Паскаль предоставляет гибкие возможности в отношении используемых структур данных. Большое внимание в языке уделено вопросу повышения надежности программ: средства языка позволяют осуществлять достаточно полный контроль правильности использования данных различных типов и программных объектов как на этапе трансляции программ, так и на этапе их выполнения. Благодаря перечисленным возможностям, Паскаль широко применяется не только в области обучения, но и в практической работе.

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

• заглавные и прописные латинские буквы;

• арабские цифры;

• знаки препинания (: ; , .);

• знаки операций;

• некоторые спецсимволы

Научно-образовательное ООО "БИП-С"

Белорусский техникум бизнеса и права

Языки программирования высокого уровня

Язык программирования Паскаль

Методические указания и задания

к лабораторным работам

для учащихся ССУЗ специальности Т1002

«Программное обеспечение информационных технологий »

Минск -2002

2


Одно из наиболее общих определений языка программирования — это инструмент для планирования поведения некоторого устройства-исполнителя. [16]

Под такое очень общее (хотя и полезное) определение подходят, например, как средства составления программ для жаккардовых ткацких станков (XVIII в.) и калькулятора Ч.Бэббиджа (XIX в.), так и системы программирования современных компьютеров. Исходя из целей курса ограничим это определение: в качестве управляемого устройства будем рассматривать только компьютеры (вычислительные системы). Планы, управляющие поведением компьютеров, называются компьютерными программами. Тогда уточненное определение будет выглядеть так: язык программирования — это нотация для записи компьютерных программ.

Однако области применения современных компьютеров настолько обширны и разнообразны, что существует большое число специализированных языков, подпадающих под наше определение. Например, это язык программирования баз данных SQL . Исполнителем для этого языка является система управления базами данных (СУБД). Данный язык позволяет описывать и создавать структуры баз данных, манипулировать данными (добавлять, модифицировать и удалять данные из базы), составлять запросы на выборку данных. Другой пример специализированного языка — язык разметки гипертекста HTML . Тексты на HTML управляют отображением гипертекста на экране компьютера. В данном случае исполнителем является программа-обозреватель (веб-браузер). Вообще можно сказать, что любая прикладная программа с нетривиальным форматом обрабатываемых ею данных определяет некоторый узкоспециализированный язык. Точно также, как и языки специальных средств, таких как оболочки экспертных систем и т.д.[17]

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

машинные языки (computer language) – языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);

машинно-ориентированные языки (computer-oriented language) – языки программирования, которые отражают структуру конкретного типа компьютера (Ассемблеры);

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

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

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

интегрированные системы программирования.[18]

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

процедурные;

функциональные;

логические;

объектно-ориентированные. [19]

♦ Основные категории программ Java:

• приложение (application) — аналог обычной прикладной программы:

• апплет (applet) — специализированная программа с ограниченными возможно­стями, работающая в окне WWW-документа под управлением браузера;

• Мидлет (midlet) — специализированная программа с ограниченными возможно­стями, работающая на мобильном устройстве;

• сервлет (servlet) — специализированная программа с ограниченными возможно­стями, работающая в WWW на стороне сервера;

• серверное приложение (Enterprise application) — предназначено для многократ­ного вьтолнения на стороне сервера:

• библиотека (Java Class Library библиотека классов, либо NetBeans Module модуль платформы NetBeans) — предназначена для многократного использова­ния программами классов Java.[20]

Краткие итоги по главе

♦ Алфавит языка Java состоит из букв, десятичных цифр и специальных символов. Буквами считаются латинские буквы (кодируются в стандарте ASCII), буквы нацио­нальных алфавитов (кодируются в стандарте Unicode), а также соответствующие им символы, кодируемые управляющими последовательностями.

♦ В программах разрешается пользоваться десятичными и шестнадцатеричными целы­ми числовыми константами. Шестнадцатеричная константа начинается с символов Ох или OX, после чего идет само число в шестнадцатеричной нотации.

♦ Java универсальный язык прикладного программирования, JavaScript- узкоспе­циализированный язык программирования HTML-документов, C++ универсаль­ный язык системного программирования. Java - компилируемый, платформо-независимый, объектно-ориентированный язык с С-образным синтаксисом.

♦ Программы Java переносимы на уровне как исходных, гак и скомпилированных ис­полняемых кодов (байт-кода). Байт-код платформо-нсзависимый, т. к. не содержит инструкций процессора конкретного компьютера и интерпретируется виртуальной Java-машиной (JVM).

♦ JIT-компиляция (Just-In-Time) компиляция байт-кода в код конкретной платфор­мы в момент выполнения программы, т. с. "по ходу дела", "на лету". Она позволяет ускорить работу программ за счет замены интерпретации байт-кода на выполнение скомпилированного кода.

Программы на этом языке называются скриптами. Они могут встраиваться в HTML и выполняться автоматически при загрузке веб-страницы.

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

Это отличает JavaScript от другого языка – Java.

Почему JavaScript?

Когда JavaScript создавался, у него было другое имя – «LiveScript». Однако, Java была очень популярная в то время и было решено, что позиционирование языка как «младшего брата» Java будет полезно.

Со временем JavaScript стал полностью независимым языком со своей собственной спецификацией, называющейся ECMAScript, и сейчас не имеет никакого отношения к Java.

Как минимум, три сильные стороны JavaScript:

Полная интеграция с HTML/CSS.

Простые вещи делаются просто.

Поддерживается всеми основными браузерами и включён по умолчанию.

JavaScript – это единственная браузерная технология, сочетающая в себе все эти три вещи.

Python довольно быстрый для большинства приложений, но его скорости может оказаться недостаточно для наиболее требовательных из них. Если ваша программа проводит большую часть времени за вычислениями (в технических терминах такое называется «ограничена быстродействием процессора» (CPU-bound)), то языки С, C++ или Java справятся с задачей гораздо лучше, чем Python. Но не всегда!

Иногда более качественный алгоритм (пошаговое решение) для Python превос­ходит по скорости неэффективный алгоритм для С. Более высокая скорость разработки для Python даст вам больше времени для экспериментов над альтернативными решениями.

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

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

Один из основных недостатков JavaScript — Глобальный Объект. Все перемен­ные верхнего уровня «сваливаются» в Глобальный Объект, и при использовании одновременно нескольких модулей это может привести к неуправляемому хаосу. Поскольку веб-приложения обычно состоят из множества объектов, возможно, создававшихся разными организациями, то может возникнуть опасение, будто программирование для Node сродни хождению но минному полю, нашпигованному конфликтующими между собой глобальными объектами. Однако это не так. На самом деле в Node используется система организации модулей CommonJS, а это означает, что локальные переменные некоторого модуля так и будут локальными в нем, пусть даже выглядят как глобальные. Такое четкое разграничение между модулями решает проблему Глобального Объекта.

Использование единого языка программирования на сервере и на клиенте давно уже было мечтой разработчиков для веб. Своими корнями э та мечта уходит в период становления Java, когда апплеты представлялись клиентским интерфейсом к написанным на Java серверным приложениям, a JavaScript первоначально виделся как облегченный скриптовый язык взаимодействия с апплетами. Но что-то на этом пути не сложилось, и в результате не Java, a JavaScript стал основным языком на стороне клиента-браузера. С появлением Node мы наконец сможем реализовать мечту сделать JavaScript языком, используемым по обе стороны веб - на стороне клиента и сервера.

У единого языка есть несколько потенциальных плюсов:

□ одни и те же программисты могут работать над обеими сторонами прило­жения;

□ код проще переносить с сервера на клиент и обратно;

□ общий для клиента и сервера формат данных (JSON); L) общий программный инструментарий;

□ общие для клиента и сервера средства тестирования и контроля качества;

□ на обеих сторонах веб-приложения можно использовать общие шаблоны представлений;

G общий язык общения между группами, работающими над клиентской и

серверной частью.[21]

Существует множество областей применения Java, от сайтов электронной коммерции до Android приложений, от научных до финансовых приложений, таких как трейдинговые системы, от игр, типа Minecraft, до настольных программных средств, таких как Eclipse, Netbeans и IntelliJ, от open source фреймворков до J2ME приложений и т.д. Давайте детальнее рассмотрим каждое из них.

Android приложения

Если хотите увидеть, где используется Java, не нужно далеко идти. Просто возьмите свой телефон на Android, абсолютно все приложения написаны на Java, с использованием Google и Android API, которые схожи с JDK. Пару лет назад Android предоставил необходимые возможности, благодаря чему сегодня многие Java программисты – Android разработчики. Кстати, Android использует другую JVM и другой и другой способ компановки, но код всё ещё написан на Java.

Серверные приложения в сфере финансовых услуг

Java очень обширно применяется в финансовой сфере. Многие мировые инвестиционные банки, типа Goldman Sachs, Citigroup, Barclays, Standard Charted и другие используют Java для написания фронт-энд и бэк-энд офисных электронных систем, систем регулирования и конфирмации, проектов обработки данных и некоторых других. Преимущественно Java используется при написании серверных приложений, в большинстве своём без какого-либо пользовательского интерфейса, которые получают данные с одного сервера, обрабатывают их и отправляют дальше. Java Swing был также популярен для создания «толстоклиентных» интерфейсоф, но сейчас C# быстро захватывает рынок в этой области, а Swing уже выдыхается.

Вэб-приложения

Также Java широко используется в электронной коммерции и в области вэб-приложений. Огромное количество RESTful сервисов было создано с использованием Spring MVC, Struts 2.0 и похожих фреймворков. Даже простейшие приложения, основанные на Servlet, JSP и Struts, достаточно популярны в различных государственных проектах. Многие вэб-приложения государственных, оздоровительных, страховых, образовательных, оборонительных и некоторых других отделений написаны на Java.

Программные средства

Многие полезные программные средства и средства разработки написаны и разработаны на Java, например Eclipse, IntelliJ Idea и Netbeans IDE. Мне кажется это, к тому же, наиболее используемые приложения, написанные на Java. Было время, когда Swing был очень популярен при создании «толстых клиентов», преимущественно в финансовой сфере. Сегодня Java FX набирает всё большую популярность, но это всё ещё не замена Swing, к тому же C# практически полностью вытеснил Swing из финансовой области.

Использование JavaScript позволяет делать компактными многоуровневые меню, многоуровневую навигацию в side-bar-ах. Подпункты меню открываются либо по клику, либо по наведению мыши.

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

Но что делать, если все-таки нужно компактно вместить много виждетов?

Тут на помощь приходит решение JavaScript с «табами».

С их помощью можно хорошо вместить все виджеты в боковых колонках сайта. Для лучшего восприятия можно группировать виджеты в «табы».

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

Также, используя JavaScript, можно делать всевозможные эффекты на сайте — такие как плавное выскальзывание элементов, их перемещение, постепенное появление и исчезновение и все то, на что хватит вашей фантазии.

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

Глава 4 Выбор среды программирования.

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

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

Наиболее часто используемыми являются визуальные среды Delphi, C++ Builder фирмы

Borland (Inprise Corporation), Visual C++, Visual Basic фирмы Microsoft, Visual Ada фирмы IBM и идр.

Между основными визуальными средами этих фирм Delphi, C++ Builder и Visual C++ имеется существенное различие: визуальные среды фирмы Microsoft обеспечивают более низкий уровень программирования «под Windows». Это является их достоинством и недостатком. Достоинством - так как уменьшается вероятность возникновения «нестандартной» ситуации, т. е. ситуации, не предусмотренной разработчиками библиотеки компонентов, а недостатком - так как это существенно загружает программиста «рутинной» работой, от которой избавлен программист, работающий с Delphi или C++ Builder. Много нареканий вызывает также интерфейс Visual C++, также ориентированный на «низкоуровневое» программирование.

В общем случае, если речь идет о выборе между этими средами, то он в значительной степени должен определяться характером проекта.[22]

Язык — это набор правил для написания программ, которые являются всего лишь последовательностями символов. В этой главе делается обзор компонентов среды программирования — набора инструментов, используемых для преобразования символов в выполнимые вычисления. Редактор - это, инструментальное средство для создания и изменения исходных файлов, которые являются символьными файлами, содержащими написанную на языке программирования программу. Компилятор транслирует символы из исходного файла в объектной модуль, который содержит команды в машинном коде для конкретного комью-тера. Библиотекарь поддерживает совокупности объектных файлов, называемые библиотеками. Компоновщик, или редактор связей, собирает объектные файлы отдельных компонентов программы и разрешает внешние ссылки от одного компонента к другому, формируя исполняемый файл. Загрузчик копирует исполняемый файл с диска в память и инициализирует компьютер перед выполнением программы. Отладчик — это инструментальное средство, которое дает возможность программисту управлять выполнением программы на уровне отдельных операторов для диагностики ошибок. Профилировщик измеряет, сколько времени затрачивается на каждый компонент программы. Программист, может затем улучшить эффективность критических компонентов, ответственных за большую часть времени выполнения. Средства тестирования автоматизируют процесс тестирования программ, создавая и выполняя тесты и анализируя результаты тестирования. Средства конфигурирования автоматизируют создание программ и прослеживают изменения до уровня исходных файлов. Интерпретатор непосредственно выполняет исходный код программы в отличие от компилятора, переводящего исходный файл в объектный Среду программирования можно составить из отдельных инструментальных средств; кроме того, многие поставщики продают интегрированные среды программирования, которые представляют собой системы, содержащие большую часть или все перечисленные выше инструментальные средства. Преимущество интегрированной среды заключается в чрезвычайной простоте интерфейса пользователя: каждый инструмент инициируется нажатием единственной клавиши или выбором из меню вместо набора на клавиатуре имен файлов и параметров.[23]

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

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

Различают следующие классы инструментальных сред программирования

среды общего назначения,·

языково-ориентированные среды.

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

https://studfiles.net/html/2706/27/html_Dogsw4g4mf.5J7B/img-cvhOmj.png  Классификация инструментальных сред программирования.

Языково-ориентированная инструментальная среда программирования предназначена для поддержки разработки ПС на каком-либо одном языке программирования и знания об этом языке существенно использовались при построении такой среды. Вследствие этого в такой среде могут быть доступны достаточно мощные возможности, учитывающие специфику данного языка. Такие среды разделяются на два подкласса: ·

интерпретирующие среды, ·

синтаксически-управляемые среды.

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

1.11. Среды разработки NetBeans, Eclipse, JDeveloper, JBuilder, IntelliJ IDEA

В настоящее время имеется несколько широко известных интегрированных сред paзpaботки (Integrated Development Environment — IDE) для программирования на языке Java (табл. 1.10).

Таблица 2. Интегрированные среды разработки для Java

Среда

Разработчики

Краткое описание

NetBeans 6.5

Sun,

Бесплатная среда с открытым исходным кодом. Может

netbeans.org

быть свободно загружена с сайта http:/;www.netbeans.org/ Размер дистрибутива 248 Мбайт По мнению автора на момент выхода данной книги является наиболее развитой из бесплатных сред разработки для Java

Среда

Разработчики Краткое описание

JDeveloper 11

Oracle

Бесплатная среда, ориентированная на работу с базами данных Oracle на основе технологий Java ЕЕ, но может использоваться как универсальная среда разработки для Java. Может быть свободно загружена с сайта http://oss.oracle.com/jdeveloper.html Размер дистрибу­тива 656 Мбайт

Eclipse 3.4.1

IBM,

Eclipse Foundation

Бесплатная среда с открытым исходным кодом. Может быть свободно загружена с сайта http://www.eclipse.org/. Размер дистрибутивов 86 Мбайт (комплект "Eclipse IDE for Java Developers") и 163 Мбайт (комплект "Eclipse IDE for Java ЕЕ Developers"}. Является основой (платформой) для многих коммерческих сред разработки

JBuilder 2008

Borland. Имеется три редакции — бесплатная (JBuilder 2008 CodeGear Turbo) и две коммерческие (JBuilder 2008 Professional и

JBuilder 2008 Enterprise). Бесплатная редакция и пробные версии коммерческих могут быть свободно загружены с сайта http://www.codegear.com/. Размер дистрибутива 1,8 Гбайт, он идентичен для всех редакций

IntelliJ IDEA 7.0.4

JelBrain Коммерческая среда. Очень популярна в западных стра­нах. Пробная версия может быть свободно загружена с сайта http:'/www.jetbrains.com'idea;. Размер дистрибутива 88 Мбайт

♦ Развитый редактор исходного кода, включающий не только средства редактирова­нии, но и синтаксический анализатор исходного кода, обеспечивающий подсветку проблемных мест (см. главу 2).

♦ В каждой IDE имеется отладчик, позволяющий проводить пошаговую проверку вы­полнения airopHTMOB (см. главу 17).

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

♦ Поддержка интеграции с различными системами контроля версии (Vesrion Control Systems— VCS. или. что то же самое. Revision Control Systems, Source Control Systems или Source Code Management — SCM). Системы контроля версий обеспечи­вают документирование любых изменений в проекте и. при необходимости, откат назад на нужное число шагов во всем проекте или его части. Кроме того, в настоя­щее время они стати базовыми средствами для профессиональной групповой работы над проектами.

Заключение

В большинстве случаев никакой проблемы выбора языка программирования реально не существует. Язык может быть определен:

•организацией, ведущей разработку; например, если фирма владеет лицензионным вариантом C++ Builder, то она будет вести разработки преимущественно в данной среде;

•программистом, который по возможности всегда будет использовать хорошо знакомый язык;

•устоявшимся мнением («все разработки подобного рода должны выполняться на C++ или на Java или на ...») и т. п.

Если же все-таки выбор языка реально возможен, то нужно иметь в виду, что все существующие языки программирования можно разделить на следующие группы:

•универсальные языки высокого уровня;

•специализированные языки разработчика программного обеспечения;

•специализированные языки пользователя;

•языки низкого уровня.

Библиография

Голицына О. Л., Партыка Т. Л., Попов И. И. Гедранович, В.В. Основы компьютерных информационных технологий: учеб.-метод. комплекс / В.В. Гедранович, Б.А. Гедранович, И.Н. Тонкович. – 2-е изд., стереотип. – Минск: Изд-во МИУ, 2011. – 344 с.

Головин И.Г. Языки и методы программирования : учебник для студ. учреждений высш. проф. образования / И.Г.Головин, И.А.Вол­кова. — М.: Издательский центр «Академия», 2012. — 304 с. — (Сер. Бакалавриат).

Информатика и математика : учебник и практикум для прикладною бакалавриата / А. М. Попов, В. Н. Сотников, Е. И. Нагаева, М. А. Зайцев ; под ред. А. М. Попова. — 4-е изд., перераб. и доп. — М. : Издательство Юрайт, 2018. — 484 с. — (Серия : Бакалавр. Прикладной курс).

Информатика и основы программирования [Текст] : учебное пособие для вузов по специальности "Менеджмент организации" / М. Ф. Меняев. - 3-е изд., стер. - Москва. : Омега-Л, 2007. - 456, [2] с. : ил. - (Высшее техническое образование). С 45

Кауфман В. Ш. Языки программирования. Концепции и принципы. М.: ДМК Пресс. 2010. - 464 с: ил.

Монахов В. В. Язык программирования Java и среда NetBeans. - - 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2009. — 720 с: ил. + CD-ROM

Москвитин, А. А. М82 Решение задач на компьютерах : часть II. Разработка программных средств : учебное пособие/А. А. Москвитин. — М.-Берлин: Директ-Медиа, 2015. — 427 с.

Нагинаев В.Н. Основы алгоритмизации и программирования на языке C++: Учебное пособие. - М.: МИИТ, 2009, -204 с.

Программирование: принципы и практика использования C++, испр. изд. : Пер. с англ. — М.: ООО "И.Д. Вильяме", 2011. —1248 с.: ил. — Парал. тит. англ. Страуструп, Бьярне.

Прохоренок, Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 4-е изд., перераб. и доп. /НА. Прохоренок, В. А. Дронов. — СПб.: БХВ-Петербург, 2015. — 768 с: ил. — (Профессиональное программирование)

Системы управления базами данных: Учеб. пособие. — М.: ФОРУМ: ИНФРА-М, 2006. — 432 с: ил. — (Профессиональное образование).

Орлов, С. Теория и практика языков программирования: Учебник для вузов. Стандарт 3-го поколения / С. Орлов. - СПб.: Питер, 2013. - 688 c.

Бен-Ари М. Языки программирования. Практический сравнительный анализ. — М.: Мир, 2000.

Хэррон Д. Node.js. Разработка серверных веб-приложенийЛ. А. - М.: ДМК Пресс, 2012. - 144 с: ил. в JavaScript: Пер. с англ. Слинкина

Приложения

Приложение 1.

Поколения ЯП

Поколения

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

Характеристика

Первое

Машинные  

Ориентированы на использование в конкретной ЭВМ, сложны в освоении, требуют хорошего знании архитектуры ЭВМ

Второе

Ассемблеры, Макроассемблеры

Более удобны для использования, но по-прежнему машинно-зависимы

Третье

Языки высокого уровня  

Мобильные, человекоориентированные, проще в освоении

Четвертое

Непроцедурные, объектно-ориентированные, языки запросов, параллельные

Ориентированы на непрофессионального пользователя и на ЭВМ с параллельной архитектурой

Пятое

Языки искусственного интеллекта, экспертных систем и баз знаний, естественные языки

Ориентированы на повышение интеллектуального уровня ЭВМ и интерфейса с языками[25]

Приложение 2.

Классификация инструментальных сред программирования. [26] 

https://studfiles.net/html/2706/27/html_Dogsw4g4mf.5J7B/img-cvhOmj.png

Приложение 3.

Таблица 2. Интегрированные среды разработки для Java[27]

Источник: Монахов В. В. Язык программирования Java и среда NetBeans. - - 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2009. — С 50

Среда

Разработчики

Краткое описание

NetBeans 6.5

Sun,

Бесплатная среда с открытым исходным кодом. Может

netbeans.org

быть свободно загружена с сайта http:/;www.netbeans.org/ Размер дистрибутива 248 Мбайт По мнению автора на момент выхода данной книги является наиболее развитой из бесплатных сред разработки для Java

Среда

Разработчики Краткое описание

JDeveloper 11

Oracle

Бесплатная среда, ориентированная на работу с базами данных Oracle на основе технологий Java ЕЕ, но может использоваться как универсальная среда разработки для Java. Может быть свободно загружена с сайта http://oss.oracle.com/jdeveloper.html Размер дистрибу­тива 656 Мбайт

Eclipse 3.4.1

IBM,

Eclipse Foundation

Бесплатная среда с открытым исходным кодом. Может быть свободно загружена с сайта http://www.eclipse.org/. Размер дистрибутивов 86 Мбайт (комплект "Eclipse IDE for Java Developers") и 163 Мбайт (комплект "Eclipse IDE for Java ЕЕ Developers"}. Является основой (платформой) для многих коммерческих сред разработки

JBuilder 2008

Borland. Имеется три редакции — бесплатная (JBuilder 2008 CodeGear Turbo) и две коммерческие (JBuilder 2008 Professional и

JBuilder 2008 Enterprise). Бесплатная редакция и пробные версии коммерческих могут быть свободно загружены с сайта http://www.codegear.com/. Размер дистрибутива 1,8 Гбайт, он идентичен для всех редакций

IntelliJ IDEA 7.0.4

JelBrain Коммерческая среда. Очень популярна в западных стра­нах. Пробная версия может быть свободно загружена с сайта http:'/www.jetbrains.com'idea;. Размер дистрибутива 88 Мбайт

  1. Голицына О. Л., Партыка Т. Л., Попов И. И.

    Языки программирования: учеб. пособие. — М.: ФОРУМ: ИНФРЛ-М, 2008. — С. 4.

  2. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. -5-е изд., перераб. и доп. /II. А. Прохоренок, В. А. Дронов. — СПб.: БХВ-Петербург, 2019. — С 1

  3. Страуструп, Бьярне. Программирование: принципы и практика использования C++, испр. изд. : Пер. с англ. — М.: ООО "И.Д. Вильяме", 2011. —1248 с.: ил. — Парал. тит. англ.

  4. Программирование: принципы и практика использования C++, испр. изд. : Пер. с англ. — М.: ООО "ИД Вильяме", 2011. — С. 822

  5. Программирование: принципы и практика использования C++, испр. изд. : Пер. с англ. — М.: ООО "ИД Вильямс", 2011. — С. 14

  6. Программирование: принципы и практика использования C++, испр. изд. : Пер. с англ. — М.: ООО "ИД Вильямс", 2011. — С. 15

  7. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. -5-е изд., перераб. и доп. /II. А. Прохоренок, В. А. Дронов. — СПб.: БХВ-Петербург, 2019. — С 144

  8. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. -5-е изд., перераб. и доп. /Н. А. Прохоренок, В. А. Дронов. — СПб.: БХВ-Петербург, 2019. — С 413

  9. Прохоренок. Н. Л.

    HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. -5-е изд., перераб. и доп. / Прохоренок. Н. Л., В. А. Дронов. — СПб.: БХВ-Петербург, 2019. — С 24

  10. Прохоренок. Н. Л.

    HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. -5-е изд., перераб. и доп. /Н. А. Прохоренок, В. А. Дронов. — СПб.: БХВ-Петербург, 2019. — С 615

  11. Компьютерный практикум. Учебное пособие для будущих специалистов по управлению персоналом. /О.В.Приходько, М.А.Токарева. - Оренбург: ГОУ ОГУ, 2008. - 200 с.

  12. (Г.С. Иванова Технология программирования)

  13. Орлов, С. Теория и практика языков программирования: Учебник для вузов. Стандарт 3-го поколения / С. Орлов. - СПб.: Питер, 2013. - 688 c.

  14. Информатика и математика : учебник и практикум для прикладною бакалавриата / А. М. Попов, В. Н. Сотников, Е. И. Нагаева, М. А. Зайцев ; под ред. А. М. Попова. — 4-е изд., перераб. и доп. — М. : Издательство Юрайт, 2018. — С 238

  15. Нагинаев В.Н. Основы алгоритмизации и программирования на языке C++: Учебное пособие. - М.: МИИТ, 2009, - С11

  16. Головин И.Г., Баева Н.В.Языки управления приложениями: Учебно-методическое пособие .М.:Издательский отдел факультета ВМиК МГУ имени М.В. Ломоносова (лицензия ИД№ 05899 от 24.09.2001); МАКС Пресс, 2015 – 92 с. [+4 стр.вкл.] С 4

  17. (Головин И.Г. Языки и методы программирования : учебник для студ. учреждений высш. проф. образования / И.Г.Головин, И.А.Волкова. — М. : Издатель) С 6

  18. Информатика и основы программирования [Текст] : учебное пособие для вузов по специальности "Менеджмент организации" / М. Ф. Меняев. - 3-е изд., стер. - Москва. : Омега-Л, 2007. - 456, [2] с. : ил. - (Высшее техническое образование). С 45

  19. Гедранович, В.В. Основы компьютерных информационных технологий: учеб.-метод. комплекс / В.В. Гедранович, Б.А. Гедранович, И.Н. Тонкович. – 2-е изд., стереотип. – Минск: Изд-во МИУ, 2011. – 344 с. С 2

  20. Монахов В. В.

    Язык программирования Java и среда NetBeans. - - 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2009. — С 70

  21. Хэррон Д.

    Node.js. Разработка серверных веб-приложений

    Л. А. - М.: ДМК Пресс, 2012. - С 19

  22. (Г.С. Иванова Технология программирования)

  23. Бен-Ари М. Языки программирования. Практический сравнительный анализ. –М.: Мир, 2000. -366 с

  24. Москвитин, А. А. Решение задач на компьютерах : часть П. Разработка программных средств : учебное пособие / А. А. Москвитин. — М.-Берлин: Директ-Медиа, 2015. — С 286

  25. Кауфман В. Ш.Языки программирования. Концепции и принципы. М.: ДМК Пресс.

    2010.

  26. Москвитин, А. А. Решение задач на компьютерах : часть П. Разработка программных средств : учебное пособие / А. А. Москвитин. — М.-Берлин: Директ-Медиа, 2015. — С 286

  27. Монахов В. В. Язык программирования Java и среда NetBeans. - - 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2009. — С 50