Файл: История возникновения и развития языка программирования Си (С++) и Java (МЕТОДОЛОГИИ ПРОГРАММИРОВАНИЯ).pdf

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

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

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

Добавлен: 31.03.2023

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

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

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

ВВЕДЕНИЕ

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

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

Цель данной работы исследование истории возникновения и развития языков программирования С (С++) и Java. Соответственно, объектами исследования являются такие языки, как С, С++ и Java, а предметом исследования их история возникновения и развития.

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

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

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

ГЛАВА 1. МЕТОДОЛОГИИ ПРОГРАММИРОВАНИЯ

1.1 Ключевые понятия в области программирования

Программирование – процесс и искусство создания компьютерных программ с помощью языков программирования.

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


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

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

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

Язык программирования – формальная знаковая система для описания программы работы компьютера в форме, пригодной для трансляции и исполнения на компьютере. Язык программирования – это, прежде всего, инструмент деятельности, и на него в первую очередь оказывает влияние класс решаемых на нем задач. Хотя бы один язык нужно знать досконально, чтобы представлять многообразие имеющихся средств и иметь возможность сравнивать с другими. Для будущих специалистов в области компьютерных технологий, безусловно, необходимо изучение языка С. Универсализм его не в том, что на нем можно написать все, а в том, что на нем можно написать все, на чем пишется все остальное, а именно: операционные системы, базы данных, трансляторы и т.п.

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

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


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

Определение программы дано в формуле: «Программа = данные + алгоритм». В ней данные и алгоритм являются двумя взаимозависимыми элементами. Если данные в какой-то мере обладают свойствами пространства (объем, протяженность), то алгоритм – свойствами времени (эффективность, быстродействие); тезис «проигрывая в пространстве, выигрываем во времени» здесь также уместен: эффективность программ может быть принципиально повышена за счет использования дополнительных структур данных в памяти.

Как правило, под программой на С++ подразумеваютисходный текст, написанный на С++, набранный в текстовом редакторе и сохраненный в текстовом файле (одном или нескольких). Текстовый файл с названием вида имя_файла.cpp (cpp – принятое расширение для программ на С++) – основная программная единица. [18]

1.2 Основные парадигмы программирования

Рассмотрим различные парадигмы программирования.

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

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

Многие современные языки поддерживают ООП, хотя и в разной степени:

Процедурное программирование — это парадигма программирования, полученная из структурированного программирования, основанная на концепции вызова процедуры. Процедуры, также известные как подпрограммы или функции, просто содержат ряд вычислительных шагов, которые должны быть выполнены. [4]

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

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

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

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

Декларативная парадигма программирования определяет процесс вычислений посредством описания логики самого вычисления, а не управляющей логики программы. [4]

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

В целом, классификация языков показана на рисунке 1.

Рисунок 1 — Классификация языков программирования

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


ГЛАВА 2. ОСОБЕННОСТИ ВОЗНИКНОВЕНИЯ И РАЗВИТИЯ ЯЗЫКА C/C++

2.1 Возникновение языка С

Разработка C первоначально не была целью его создателей. Фактически, различные обстоятельства и проблемы создали идеальную ситуацию для ее появления. В 1960-х годах Деннис Ритчи, который был сотрудником Bell Labs (AT&T), вместе с некоторыми из его коллег, работал над разработкой операционной системы, которая могла бы использоваться многими пользователями одновременно. Эта операционная система была известна как Multics, и она должна была позволить многим пользователям совместно использовать общие вычислительные ресурсы. Multics добавляли много преимуществ, но также имели много проблем. Это была большая система, и казалось, с точки зрения выгоды, что затраты перевешивают вложенные усилия и ресурсы. Постепенно Bell Labs отказались от проекта.

Именно тогда Ричи присоединился к Кен Томпсону и Брайану Кернигану в другом проекте. Проект включал разработку новой файловой системы. Томпсон разработал новую файловую систему для суперкомпьютера DEC PDP- 7 на ассемблере. После этого создатели файловой системы сделали много улучшений, что привело к рождению операционная системы UNIX. Даже в имени новой операционной системы UNIX можно найти следы его предшественника Multics. Первоначально это была Unics (Uniplexed Information and Computing Service). Позже Unics изменилась на UNIX. Она была написана на ассемблере, который, хотя и идеален для машин, сложен для работы людьми. Для интерпретации и управления UNIX использовались языки Fortran и B. Именно в этот момент идея появления языка C начала формироваться в сознании ее создателей [8].

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

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

Язык С составляет подмножества языка С++. Практически более новый язык включает в себя весь С и добавляет ему новые функции, а самое главное — объектно-ориентированную парадигму. [3, 14, 17]