Файл: История возникновения и развития языка программирования Си (С++) и Java (Основы алгоритмизации).pdf
Добавлен: 31.03.2023
Просмотров: 238
Скачиваний: 1
Введение
Программирование длительное время было занятием лишь для профессионалов в сфере вычислительных технологий. Объявленный в конце 1980-х гг. лозунг «Программирование – это вторая грамотность» остался далеко в прошлом.
Решая разные информационные задачи, необходимо выбрать адекватное средство программирования или разработки программного обеспечения (ПО). Это могут быть системы управления базами данных, электронные таблицы, математические прикладные пакеты и т.д.
Только в этом случае, когда такие средства не дают возможности вычислить задачу, следует использовать языкам программирования (ЯП) высокого уровня.
Принято различать языки программирования двух категорий?
– системные;
– прикладные.
Языки этих категорий решают разные типы задач. Но есть такие ЯП, которые относятся к двум категориям. Примером такого инструментального ПО является язык программирования С, изучению которого посвящена представляемая курсовая работа.
Актуальностью исследования является необходимость изучения ЯП С и Java в качестве базовых объектов инструментального программного обеспечения.
Целью работы является рассмотрение основ программирования на ЯП высокого уровня С и Java, а также истории их создания.
Объект работы – ЯП С и Java.
Предмет работы – история развития языков программирования С и Java.
В курсовой работе поставлены такие задачи:
– выполнить обзор литературы по выбранной тематике курсовой работы;
– описать понятие алгоритмизации как фундаментального базиса при изучении программирования;
- рассмотреть классификацию языков программирования;
- дать характеристику и описать основные возможности ЯП С и Java, а также историю из развития.
Изучением и усовершенствованием ЯП занимались многие разработчики и ученые: К.Голдинг, Б.Страуструп, Королюк В.К. и другие.
1.Понятия теории алгоритмизации и программирования
Основы алгоритмизации
До недавнего времени полностью все профессиональные программисты свои программные продукты реализовывали при применении структурной или процедурной парадигмы программирования.
При перманентном увеличении объемов обрабатываемой информации, ростом многих требований разного рода пользователей непосредственно к написанию программных продуктов значительно начали возрастать объемы вспомогательных программных модулей и других составных частей разрабатываемого ПО.
Вследствие постоянной борьбы непосредственно с проблемой большой сложности процесса разработки программных кодов были созданы более новые концепции проектирования ПО, а именно следующие:
– объектно-ориентированное программирование (ООП);
– унифицированный язык UML;
– специализированные средства по разработке современного ПО.
Стоит отметить, что в некоторых программистов часто возникает логический вопрос: почему ООП начало быть приоритетным при разработке большинства программы и другими языками программирования?
Заметим, что ООП также имеет возможность предложить совершенно новый мощный механизм для решения проблем, которые появляются при создании сложных программ.
Вместо рассмотрения программы в качестве какого-то набора последовательно реализуемых установок, для ООП программный код продукта представляется как совокупность некоторых основных объектов, имеющих сходные свойства, разные наборы соответствующих действий.
Любую систему обозначений, которая согласована с ней систему понятий, что можно использовать при описании алгоритмов и структур информации, в первом приближении считают языком программирования.
Каждый из языков создавался для определенных новых целей и имеет некоторые недостатки и достоинства. Для того чтоб эффективно реализовывать и использовать ЯП, необходимо хорошо знать самые фундаментальные понятия, лежащие в основании их построения.
Знание основ ЯП с точки зрения применение и реализации основных языковых конструкций позволяет:[5]
– более обоснованно использовать ЯП для реализации конкретного программного проекта;
– разрабатывать эффективные алгоритмы для вычислений;
– систематически пополнять совокупность полезных языковых элементов;
– ускорить изучение новейших языков программирования;
– применять полученные знания в качестве методологической основы для разработки более новых ЯП;
– получить основные знания, необходимые для непосредственной разработки трансляторов, поддерживающих разные вычислительные процессы.
Используемые программистами ЯП отличаются своим синтаксисом, функциональными возможностями.
Различия в синтаксисе имеют незначительную роль при непосредственном изучении концептуальных основ ЯП, в то время как отсутствие или наличие тех или иных возможностей существенно влияет непосредственно на область применения и реализацию языка.
Работа по решению задач с использованием персонального компьютера (ПК) делится на такие этапы:
- Постановка задачи.
- Формализация полученной задачи.
- Построение вычислительного алгоритма.
- Программирование решения задачи.
- Отладка и тестирование программного продукта.
- Проведение анализа полученных результатов.
- Часто данную последовательность называют цепочкой решения задачи ПК.
- Непосредственно к процессу программирования в этом списке можно отнести пункты 3 – 5.
На этапах постановки задачи нужно четко сформулировать, что дано для выполнения задачи и что требуется в результате этого найти.[10]
Также здесь очень важно определять полный набор начальных данных, что необходимы для получения конкретного решения.
Второй этап предназначен для выполнения формализации задачи. Тут чаще всего задача может переводится на так называемый язык математических формул.
Если для решения нужно математического описания какого-либо реального объекта или процесса, то непосредственная формализация равносильна соответствующей математической модели.
При выполнения третьего этапа выполняется построение алгоритма. Опытные разработчики часто сразу пишут свои программные проекты на языках, при этом не прибегая к каким-то специальным методам описания алгоритмов.
Но в учебных целях очень полезно использовать средства, а затем перевести полученный алгоритм на определенный ЯП.[5]
Первые 3 этапа предусматривают работу практически без компьютера. Дальше надо выполнить процесс программирования на определенном ЯП, в определенной системе визуального программирования.
Стоит отметить, что последний этап – использование уже ранее разработанной программы для практических целей.
Стоит отметить, что программист должен обладать такими знаниями и навыками: [2]
– уметь разрабатывать алгоритмы;
– знать принципы использования ЯП;
– уметь работать в определенной системе визуального программирования.
На рисунке 1 показан принцип работы программ на ЯП:
Рисунок 1 – Принцип работы программ
В результате рассмотренного пункта можно сделать выводы, что основой грамотности является для разработчика является развитое алгоритмическое мышление.
1.2.Языки программирования, их классификация
Языком программирования является набор правил, для которых формируется директива на ПК, что именно он обязательно выполнить в конкретный момент времени.
Под словом «директива», можно понимать код, команду, оператор и другие синонимы.
Для машин первого поколения программы были разработаны в машинном ЯП. Это значит, что практически все операции, которые выполнялись ЭВМ, имели некоторый числовой код (рисунок 2).
Рисунок 2 – Программный машинный код
Реализовать некоторый язык программирования на ПК – это значит разработать транслятор с указанного ЯП для данной ПК.[12]
Существуют 2 принципиально различных инструмента трансляции. Они называются:
– компиляция;
– интерпретация.
Для непосредственного объяснения их различия предложим следующую аналогию: преподаватель должен выступить перед студентами на незнакомом им языке.
Перевод можно выполнить такими метолами:
– предварительный полный перевод – преподаватель заранее передает весь текст выступления своему переводчику, тот для себя записывает перевод, размножает его, а также раздает слушателям;
– синхронный перевод – лектор читает свой доклад, а переводчик одновременно в синхронном режиме переводит выступление.
Процесс компиляция является аналогом предварительного перевода; а интерпретации – аналогом синхронного перевода. Транслятор, который работает по принципу компиляции, называют компилятором; а транслятор, функционирующий методом интерпретации – интерпретатором.
При компиляции непосредственно в память ПК загружается компилятор.
Она воспринимает созданный программистом текст программы как исходную информацию. В результате завершения компиляции получается специального вида программа на машинном языке.
Затем в памяти останется только программа, которая выполняется процессором, и будут получены требуемые результаты.
Интерпретатор в течение времени работы программы может находится непосредственно во внутренней памяти.
Интерпретатор в последовательности реализации алгоритма имеет возможность «считать» очередной оператор программы, а потом перевести его в команды, а также выполнить эти команды.
Далее нужно перевести и выполнить следующий оператор. При этом результаты других переводов не сохраняются в памяти ПК.
При повторном выполнении той же команды она будет снова транслироваться. Стоит отметить, что при компиляции исполнение программного продукта разбивается на 2 этапа:
– трансляцию;
– выполнение.
При интерпретации, так как выполнение и трансляция совмещены, программа проходит в выполнение только одного этапа. Однако откомпилированная программа будет выполняться быстрее, чем интерпретируемая.
В результате использование компиляторов намного удобнее для огромных программных проектов, требующих быстрого счета.
Стоит отметить, что программы на С, Паскале, Фортране компилируются всегда, а ЯП Бейсик чаще всего использует интерпретатор.
Все языки программирования можно классифицировать на такие 2 категории (рисунок 3):
Рисунок 3 – Классификация ЯП
Низкоуровневый ЯП – это такой язык программирования, который является близким непосредственно к написанию программ в машинных кодах и обрабатывается виртуальным или реальным процессором.
При обозначении в программе разного рода машинных команд применяется мнемоническое их обозначение.
Все это дает возможность запоминать команды не лишь в виде последовательности бинарного кода, а и в качестве осмысленных сокращений для некоторых слов.
Как правило, ЯП низкого уровня применяет особенности для конкретного семейства современных популярных процессоров. Общеизвестный пример такого классического низкоуровнего языка – это ассемблер.
Для одного процессора присутствует несколько видов ЯП, которые основаны на ассемблере.
Они совпадают с разного рода машинными командами, но различаются при этом набором функций.
Высокоуровневый ЯП – это специальный язык программирования, что используется для удобства и скорости написания программ. [4]
Основной чертой современных высокоуровневых языков является их абстракция, то есть применение некоторых смысловых конструкций, описывающих структуры данных, а также операции для них, описания которых при использовании машинного кода (или иного низкоуровневого языка) очень сложные.
Стоит отметить, что высокоуровневые ЯП предназначены не только для облегчения решение сложных задач, а также значительно упростить программное обеспечение.
Структура ЯП высокого уровня показана на рисунке 4:
Рисунок 4 – Структура ЯП высокого уровня
Использование самых разных трансляторов, интерпретаторов дает возможности по обеспечению связи программ, созданных на высокоуровневых ЯП, с самыми различным оборудованием и операционными системами (ОС).
Примерами высоких ЯП являются: