Добавлен: 01.04.2023
Просмотров: 284
Скачиваний: 1
ВВЕДЕНИЕ
В современном мире, залогом успешной деятельности, является информация и время, необходимое на ее получение, обработку и эффективное использование. Мир меняется чрезвычайно быстро, а помогают ему в этом компьютерные технологии. Однако емкое словосочетание «компьютерные технологии» включает в себя ряд важных ключевых моментов. Основным из них является разработка программного обеспечения, для создания которого необходимо владеть языками программирования. Языков программирования придумано много. Причина данного разнообразия заключается в разности потребностей программистов, в разных уровнях их квалификации и во многом другом. Так, начинающим вряд ли стоит предлагать Ассемблер, а профессионалу не нужен Лого. Также разные языки ориентированы на разные предметные области.
Актуальность данной темы обусловлена тем, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования.
Методологической основой исследования выступили теоретический анализ научно – исследовательской литературы отечественных и зарубежных авторов.
Данное исследование опирается на работы таких авторов, как Белов М.П.
( Основы алгоритмизации в информационных системах: Учеб. пособие.- СПб.: СЗТУ, 2003. ), Житкова О.А (Справочные материалы по программированию на языке Паскаль..-М.: Интеллект-Центр), Симоновича С.В. (Информатика. Базовый курс. 2-е издание. Под редакцией Симоновича. Издательство “Питер” 2004г), Орлов С. А. (Принципы построения языков программирования. Учебник. — Рига: TSI, 2012.), Керниган Б. В., Ричи Д. М. (Язык программирования С. 2-е изд. М.: Издательский дом «Вильямс», 2009.), Лоусон Б., Шарп Р. (Изучаем HTML5. Библиотека специалиста. — СПб.: Питер, 2011), Эккель Б. (Философия Java. 4-е изд. — СПб.: Питер, 2009.) и т.д. Данные работы соответствуют требованиям государственных образовательных стандартов высшего профессионального образования.
В первой главе были рассмотрены основы языков программирования и история их развития.
Во второй главе была рассмотрена классификация языков программирования.
Третья глава была посвящена изучению среды и критериев выбора языка программирования.
Объектом исследования выступили языки программирования.
Предметом исследования выступила классификация языков программирования и критерии выбора среды и языка разработки программ.
Цель исследования:
- Изучить разнообразие языков программирования и выявить сложившуюся классификацию
- Определить совокупность методов и средств, используемых в процессе разработки программного обеспечения
Задачи исследования:
- Рассмотреть понятие язык программирования.
- Выявить классификацию современных языков программирования
- Изучить среды программирования
- Определить критерии выбора среды и языка программирования.
ГЛАВА 1
ОПИСАНИЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
Язык программирования — искусственный язык, предназначенный для записи программ для исполнителя (например, компьютера или станка с числовым управлением). Он задается своим описанием.
Описание языка программирования — документ, специфицирующий возможности алгоритмического языка. Описание содержит:
· алфавит допустимых символов и служебных (ключевых) слов;
· синтаксические правила построения из алфавита допустимых конструкций языка;
· семантику, объясняющую смысл и назначение конструкций языка [4].
Языки программирования служат для решения задач в таком формате, чтобы они могли быть исполнены на ЭВМ. В настоящее время существует несколько сотен реально используемых языков программирования, имеющих свою область применения [23]. В данной работе охарактеризуем наиболее известные языки программирования.
-
- Паскаль
Паскаль назван в честь ученого Блеза Паскаля. Популярен как при изучении программирования, так и среди профессионалов. Создан в начале 70 – х годов швейцарским ученым Никлаусом Виртом. Язык изначально разрабатывался как учебный, сейчас является одним из основных языков обучения программированию в школах и вузах. Его качества оказались столь высоки, что им пользуются профессиональные программисты [5].
Не менее впечатляющей удачи, в том числе и финансовой, добился Филип Кан, разработавший систему Турбо-Паскаль. Его идея состояла в объединении последовательных этапов обработки программы – компиляция, редактирование связей, отладка и диагностика ошибок – в едином интерфейсе [20]. Турбо-Паскаль использовали практически все образовательные учреждения, программистские центры и частные фирмы. На базе языка были созданы несколько мощных языков (Модула, Ада, Дельфи) [26].
-
-
- Структура работы на языке Паскаль
-
Как и все языки программирования, Паскаль имеет свой алфавит, включающий латинский буквы, цифры и символы. Для описания величин в языке используются переменные и константы.
Переменные – это те величины, которые в ходе написания программы могут менять свое значение.
Константы – величины, не меняющие своего значения во всем процессе написания программы [8].
В ходе написания программы, язык Паскаль позволяет использовать простые (целочисленный тип, логический, символьный, перечисляемый, интервальный, вещественный), строковые, структурированные (массивы, записи, множества, файл), ссылочные типы констант и переменных.
Каждому из перечисленных типов соответствует свой набор операций по обработке данных. Переменные и константы связываются в выражения с помощью знаков операций, стандартных функций и круглых скобок. Правила записи представляют собой запись математических выражений [10].
Программы, написанные на Паскаль имеют структуру:
- Объявления и соглашения
- Тексты процедур и функций
- Основной блок программы [26].
1.2 Си
Данный язык программирования широко используется при создании системного программного обеспечения и является очень популярным в среде разработчиков систем программного обеспечения. Данный язык характерен тем, что сочетает в себе одновременно черты языка высокого уровня, допуская программиста ко всем машинным ресурсам, в отличии от Паскаль и Бейсик [15].
1.2.1 Структура работы на языке Си
Структурой в данном языке является тип данных, предназначенный для обьединения данных различных типов в единое целое. Порядок размещения значений в памяти задаётся при определении типа и сохраняется на протяжении времени жизни объектов, что даёт возможность косвенного доступа [8].
Тип «структура» в Си допускает рекурсию, то есть наличие в своём составе указателей, ссылающихся на объекты этой самой структуры. Таким образом, структуры в Си объединяют в себе функциональность не только кортежей и записей, но и алгебраических типов. Для лёгкого представления говорят, что структура — это класс, у которого все поля по умолчанию public [17].
1.3 Бейсик
Бейсик – Beginner’s All-purpose Sumbolic Instruction Code – универсальный символический код инструкций для начинающих. Данная програма хорошо себя зарекомендовала для обучения написания простих программ. И несмортря на большое количество плохо совместимых версиях – является популярной платформой для начинающих пользователей [7].
1.3.1 Структура работы на языке Бейсик
В языке Бейсик используются следующие символы:
- Буквы латинского алфавита.
- Буквы русского алфавита. Русские буквы используются только при записи символьных констант и в комментариях.
- Цифры от 0 до 9.
- Специальные символы: + - / ., ( ) = < > " % и другие.
- Ключевые слова
- Знаки арифметических операций
- Знаки отношения
- Знаки логических операций [18].
К первичным конструкциям языка относятся константы и идентификаторы. Константы различают арифметические и символьные. Арифметические константы бывают целыми и вещественными. Целая константа - целое десятичное число, которое может иметь знак плюс или минус и находится в диапазоне - 32768 .. + 32767 [6]. Вещественная константа - десятичное число, представленное в естественной форме (с фиксированной точкой) или в экспоненциальной форме (с плавающей точкой). В любом случае используется знак "точка". Символьная литерная константа - это цепочка допустимых символов, заключенная в верхние кавычки или апострофы. Идентификатор в Бейсике должен начинаться с латинской буквы, за которой следуют латинские буквы и цифры. Программа имеет строчную структуру. Для указания заголовка нет специальных операторов, для выделения раздела объявлений имен используется оператор комментария [4].
1.4 АДА
Данный язык прямой наследник языка Паскаль. Его предназначение заключается в создании и длительном сопровождении больших программных систем, допускающих возможность параллельной обработки, управления процесами в реальном времени и т. д, чего не возможно было бы достичь, используя более простые языки. Стоит отметить, что язык изначально разрабатывался для встраиваемых систем. Отсюда — неразвитость Ады по части GUI и СУБД [27]. В основном данный язык применяется для программной разработки в авионике, атомной энергетике и в других промышленных отраслях. Одним из главных требований к языку была надёжность его использования. Соответственно, это повлекло за собой строгие ограничения по структуре, типам, написанию и многому другому. Кроме того, почти все ошибки здесь улавливаются на этапе компиляции. Другим требованием была максимальная читаемость кода в распечатанном виде, что повлекло за собой тяжеловесность полученного языка и невысокую гибкостью [24].
1.4.1 Структура работы на языке АДА
У Ada – простой, понятный, легко читаемый синтаксис, который существенно снижает риск ситуаций, когда случайная опечатка приводит к тому, что код не становится формально неправильным, но существенно меняется его семантика.
Изначально, Ада — модульный язык программирования со строгой типизацией, унаследовавший синтаксис от Паскаль и Алгол. Язык регистронезависим [27]. Синтаксис — алголоподобный: все управляющие конструкции, начинающиеся на ключевое слово, заканчиваются ключевым словом и позволяют размещать внутри любое число операторов. Язык имеет развитую систему типов, как встроенных, так и порождаемых программистом. Есть множество способов создания новых типов, язык поддерживает два разных понятия: «подтип» и «производный тип». Переменные типа и подтипа совместимы, переменные типа и его производного типа — нет [17]. В процедурах и функциях поддерживаются входные и выходные параметры, передача параметров по имени, параметры со значениями по умолчанию Поддерживается переопределение процедур, функций и операторов — создание нескольких вариантов процедуры, функции или оператора с одним и тем же именем, но различными сигнатурами (типами и количеством параметров). программы — модульные, механизм контроля импорта-экспорта описаний между модулями включает две разные директивы: одну для подключения другого модуля, другую — для импорта его описаний [10].
1.5 С++
C++ был разработан шведским программистом по имени Бьярн Страуструп (Bjarne Stroustrup) в начале 1980-х. C++ имеет на вооружении несколько дополнительных команд и операторов, но основное отличие заключается в подходе к программированию. Основной причиной популярности С++ в настоящее время является его поддержка объектно-ориентированного программирования (ООП). ООП — это иной способ написания программ, помогающий программисту писать программы быстрее и с наименьшим числом ошибок. ООП также позволяет повысить скорость обслуживания. Данный язык является «потомком» языка Си, однако имеет ряд значительных различий [2].
1.5.1 Структура работы на языке С++
Структура – это совокупность переменных, объединенных одним именем, предоставляющая общепринятый способ совместного хранения информации. Объявление структуры приводит к образованию шаблона, используемого для создания объектов структуры. Переменные, образующие структуру, называются членами структуры [12].
Структуры полезны, когда надо объединить несколько переменных с разными типами под одним именем. Это делает программу более компактной и более гибкой для внесения изменений. Также структуры незаменимы, когда необходимо сгруппировать некоторые данные, например, запись из базы данных или контакт из книги адресов [17].
1.5.2 Различия в структурах языков Си и С++
- В C++ появились классы и объекты. Технически класс C++ – это тип структуры в C, а объект – переменная такого типа. Разница только в том, что в C++ есть еще модификаторы доступа и полями могут быть не только данные, но и функции;
- То, что в C++ – наследование, в C – это просто структура в структуре;
- В C++ появились две новые операции: new и delete. При вызове new автоматически вызывается конструктор, а при вызове delete – деструктор. Нововведение можно описать формулой: new = malloc + конструктор, delete = free + деструктор [3];
- В C++ появились функции, которые вызываются автоматически после создания переменной структуры (конструкторы) и перед ее уничтожением (деструкторы). Во всех остальных отношениях это – обычные функции, на которые наложен ряд ограничений. Некоторые из этих ограничений ничем не оправданы и мешают;
- Разработчики C++ ввели слово var. А чтобы все это выглядел оригинально, “var” они переименовали в “&” и назвали “ссылкой”. Это вызвало большую путаницу, так как в C уже были понятия “указатель” и “адрес” (обозначался тем же символом &), а понятие “ссылка” звучит тоже как что-то указующе-адресующее;
- Желание программистов C контролировать типы параметров в define-ах породило в C++ inline-функции. Такая функция – это обычный define с параметрами, только не надо мучиться с символами “\” и проверяются типы. Желание узаконить в параметрах define имя типа породило template. Главный плюс template – то, что #define с одинаковыми параметрами породит два одинаковых куска кода. А template в компиляторе скорее всего будет соптимизирован: одинаковые куски кода будут соединены в один [18];
- Разные стандартные расширения файлов. file.c – означает файл написан на языке С, а file.cpp – означает что файл написан на языке С++;
- В С++ ключевое слово void является факультативным. Многие программисты на С++ включают void в качестве средства, улучшающего читаемость программы и указывающего, что у функции нет параметров;
- В С++ все функции должны иметь прототипы. В С это требование является факультативным;
- В С символьная константа автоматически повышается до целого числа. В С++ это не так;
- В С объявление глобальной переменной несколько раз не является ошибкой, хотя и не служит признаком хорошего программирования. В С++ это является ошибкой;
- В С идентификатор имеет по крайней мере 31 значащий символ. В С++ все символы рассматриваются как значащие;
- В С можно вызвать функцию main() из программы, хотя это и нетипично. В С++ это недопустимо;
- В С нельзя взять адрес регистровой переменной. В С++ можно это сделать [3].