Файл: История возникновения, развития языка программирования Си (С++) и Java.pdf

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

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

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

Добавлен: 24.04.2023

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

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

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

Введение

Быстрое и широкое развитие IT-сферы повлекло за собой создание множества языков программирования, решающих проблему общения человека с компьютером. Актуальность данной темы заключается в том, что языки программирования затрагивают людей разных профессий – от программиста до строителя в течении всей жизни. Многие молодые люди при выборе своего карьерного будущего обращают внимание именно на эту, интенсивно развивающуюся индустрию. С помощью языков программирования пишут компьютерные и мобильные программы, с их использованием работает некоторая электронная техника. Значение языков программирования в нашем современном мире очень значимо. Исходя из темы данной курсовой работы, я выделил цель этой курсовой работы и поставил основные задачи.

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

Для достижения данной цели были поставлены следующие задачи:

  • Ознакомиться с историей возникновения каждого из языков программирования.
  • Дать основное понятие каждому языку программирования.
  • Узнать основные принципы работы и ознакомиться с базовыми понятиями этих языков программирования.

1. Язык программирования Си и С++
1.1 История возникновения языков программирования Си и С++

Язык С был разработан сотрудником фирмы AT&T из подразделения Bell Labs Денисом Ритчи в 1972г. во время совместной работы с Кеном Томпсоном над ОС UNIX. Прообразом С послужил язык Би (B), разработанный Кеном Томпсоном. Также большое влияние на С имел язык BCPL, автором которого был М. Ричардсоном.

Язык С разрабатывался в основном как инструмент для системного программирования. Благодаря прекрасному сочетанию лаконичности конструкций и богатства выразительных возможностей язык С сумел найти быстрое распространение и стать одним из самых популярных языков как прикладного, так и системного программирования. Компиляторы языка С работоспособны почти на всех типах современных ПК в операционных системах Windows, Mac OS, Linux, FreeBSD, Solaris и др.

В отличие от многих языков программирования (Ада, Алгол-60 и т.д.), вступавшими в силу только после принятия соответствующих национальных и международных стандартов, язык С изначально создавался в целях применения его как рабочего инструмента, который не ставил своей задачей широкое распространение. До 1989 года на язык С стандарта не существовало, и в роли формального описания авторы компиляторов применяли книгу Б. Кернигана и Д. Ритчи (первое издание), которая вышла в 1978 году в США (на русский язык она была переведена в 1985 году). Роль этой книги как неформального стандарта для языка С осталась и по сей день. Не случайно во всей литературе и различной документации по компиляторам ссылка на эту работу обозначается специальным сокращением K&R.


Первый официальный стандарт языка С приняли в 1989 году в Американском национальном институте стандартов (American National Standards Institute - ANSI). Эту версию языка на практике обозначается С89. Также, данный стандарт приняла и Международная организация стандартов (International Standarts Organization -- ISO). В 1995г. стандарт С89 был незначительно изменен.

Язык С++ как развитие С, появился в 1979 году. Его разработчиком стал Бьерн Страуструп, в то время он начал работать в BellLabs.

При создании C++ Бьерн Страуструп хотел добиться определенных целей:

  • Получить универсальный язык со статическими типами данных, эффективностью и переносимостью языка C.
  • Непосредственно и всесторонне поддерживать множество стилей программирования, в том числе процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщённое программирование.
  • Дать программисту свободу выбора, даже если это даст ему возможность выбирать неправильно.
  • Максимально сохранить совместимость с C, тем самым делая возможным лёгкий переход от программирования на C.
  • Избежать разночтений между C и C++: любая конструкция, допустимая в обоих языках, должна в каждом из них обозначать одно и то же и приводить к одному и тому же поведению программы.
  • Избегать особенностей, которые зависят от платформы или не являются универсальными.
  • «Не платить за то, что не используется» - никакое языковое средство не должно приводить к снижению производительности программ, не использующих его.
  • Не требовать слишком усложнённой среды программирования.

Разработка и усовершенствование языка С++ вызвал от его создателя значительных усилий в течении 80-х - 90-х годов. В итоге, в 1998г. был принят ANSI/ISO-стандарт для языка С++. Если говорить общими словами, язык С++ - это объектно-ориентированная, усовершенствованная версия языка С. С++ построен на основе версии С89, которая содержала в себе все изменения 1995г., и теперь эту версию С89 называют С-подмножеством языка С++. Несмотря на то, что язык С++ задумывался как набор объектно-ориентированных расширений для языка С, впоследствии он смог развиться как самостоятельный язык программирования. Сегодня его новые средства почти в два раза увеличили объем исходного языка. Не нужно никаких доказательств, что С++ является одним из самых мощных компьютерных языков, разработанных до сих пор.

В 1999 году приняли второй ANSI/ISO - стандарт для языка С. Эта версия называется С99, включающая набор усовершенствований, а также некоторые новые средства. Одни из этих «новых» средств пришли из языка С++, а другие - представляют пользователю совершенно иные, новые возможности. Таким образом, отдельные элементы, привнесенные в С99, несовместимы с языком С++. Это значит, что с появлением версии С99 стандарт языка С больше не считается чистым подмножеством языка С++. К счастью, причина многих «несовместимостей» связана со средствами специального назначения, которые можно легко преодолеть. В итоге, и этот вариант языка С дает возможность создавать программы, которые будут совместимы с языком С++.


В последующие несколько лет велись работы с целью вырабатывания новых стандартов языков С и С++, завершившиеся в конце 2011года.

В октябре 2011 года появился новый стандарт языка С++. Его обозначение- C++11 или ISO/IEC 14882:2011. Полная его поддержка обещана в GCC 4.7.

А в декабре 2011г. принимают новый стандарт и для языка С. Эту версию условно называют С11 или ISO/IEC 9899:2011. Часть её возможностей уже сейчас поддерживается компилятором GCC.

Сегодня существует очень огромное количество С-подобных языков - языков, в основу которых лег язык С. Наиболее имеющие важность из них -- это языки C++ Бьярни Страуструпа, Java фирмы Sun и С# фирмы Microsoft.

1.2 Понятие языков программирования С и С++

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

  • Эффективность. Заключается в том, что программы, которые написаны на зыке С - небольшого размера с одновременно большой скоростью исполнения.
  • Лаконичность. Означает то, что запись алгоритма выразительная и краткая.
  • Компактность. Язык содержит небольшое количество встроенных средств и ключевых слов.
  • Мощность. Мощность применения достигается при помощи использования большого числа библиотек.
  • Переносимость. Компиляторы созданы для всех ОС и аппаратных платформ, вследствие чего программу можно скомпилировать и запустить практически всюду.

Конечно, язык С имеет и недостатки. Сюда можно отнести достаточно слабый контроль преобразования типов и незащищенность в процессе работе с адресами и динамической памятью, в результате чего в программе легко совершить ошибку, которую впоследствии сложно будет обнаружить. С другой стороны, эти недостатки и дали возможность создать исполняемый код, по эффективности приближающийся к программе на языке Ассемблера. В 1981 году появляется язык С++, который многие называют «С с классами». Автор способствовал добавлению в привычный С методы объектного языка - классы, служащие для представления внутренней структуры объектов, механизм наследования и новые средства работы с динамической памятью и с вводом/выводом. Благодаря данным средствам появилась возможность не только писать объектно-ориентированные программы, но и создавать библиотеки шаблонов, классов - т.е. расширить инструментарий пользователя и сферу применения самого языка. С/С++ объединяет в себе вышесказанные достоинства С и новые возможности С++, предоставляя возможность «изнутри» изучить принципы программирования высокого уровня. Язык С++ содержит в себе средства и методы как высокоуровневого, так и низкоуровневого программирования. К первым относятся классы, структуры, механизмы наследования и позднего связывания, шаблоны. Ко вторым можно отнести механизм указателей, работу с битами символов, работу с механизмом прерываний. Благодаря этому С++ весьма привлекательный для целей решения обширного круга задач.


1.3 Основные принципы работы и базовые понятия языков программирования Си и С++

Базовые понятия языков программирования Си и С++ очень схожи и по этой причине я рассмотрел более полный и современный язык С++.

Алфавит языка представляет собой набор знаков (символов), который допустим в данном языке. Такое определение справедливо и для языка человека, и для языков программирования.

В языке С++ алфавит можно условно разделить на группы знаков:

  • прописные и строчные латинские буквы (A, B,..., Z, a, b,..., z);
  • арабские цифры (0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
  • специальные знаки: " , { } | [ ] ( ) + - / % \ ; '. : ? < = > _ ! & * # ~ ^
  • пробельные символы - это символы пробела, табуляции, перехода на новую строку.

Идентификатор - это имя какого-либо объекта программы. Например, имена дают переменным, функциям, классам и т.д. Имя может состоять из латинских букв, цифр и символа _ (символ подчеркивания). Начинаться имя может с буквы или символа подчеркивания, но не с цифры. Важно учитывать, что прописные и строчные латинские буквы, используемые в идентификаторах, считаются различными (это требование является общим для всех С-подобных языков: С, С++, С#, Java, Perl и многих других. В таких же языках, как Fortran, Pascal, Basic не делается различия в именах между прописными и строчными латинскими буквами).

Пример допустимых идентификаторов:

Alfa alfa ALFA x _x a25 i_tek

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

25a (начинается с цифры);

Альфа (кириллица не допустима).

Общепринятые рекомендации по использованию имён:

  • желательно, чтобы имя объекта было осмысленным;
  • в качестве имён констант используйте имена, состоящие из прописных латинских букв, например: PI, GAMMA;
  • не используйте имена, начинающиеся с символа подчеркивания, так как такие имена часто используют разработчики компиляторов для своих целей;
  • чем больше область видимости имени, тем более выразительным и длинным должно быть имя. Короткие однобуквенные или двухбуквенные имена допустимы только внутри небольших блоков программы, внутри коротких функций пользователя.

Длина имени в большинстве случаев не ограничена, но на длину внешних имён (имён библиотек, функций) может накладывать ограничение операционная система.


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

В языке С++ имеется 63 ключевых слова. Все они приведены ниже:

Таблица 1

Ключевые слова в языке С++

asm

do

if

return

typedef

auto

double

inline

short

typeid

bool

dynamic_cast

int

signed

typename

break

else

long

sizeof

union

case

enum

mutable

static

unsigned

catch

explicit

namespace

static_cast

using

char

export

new

struct

virtual

class

extern

operator

switch

void

const

false

private

template

volatile

const_cast

float

protected

this

wchar_t

continue

for

public

throw

while

default

friend

register

true

delete

goto

reinterpret_cast

try

Константы

Константа - это неизменяемая величина. В языке C++ имеется пять типов констант: целые, вещественные, символьные, строковые и булевые.

1. Целые константы. Правила языка допускают использование трёх видов целых констант: десятичных, шестнадцатеричных и восьмеричных. Основание определяется префиксом в записи константы. Для десятичных констант префикс не нужен.

Десятичное целое - это последовательность десятичных цифр, начинающаяся не с нуля, например:

100 25 0 2009

Восьмеричное целое - это последовательность цифр, начинающаяся с 0 и не содержащая десятичных цифр старше 7, например:

016 - восьмеричное представление десятичного целого 14;

025 - восьмеричное представление десятичного целого 21.

Шестнадцатеричное целое - это последовательность шестнадцатеричных цифр (0, 1,…, 9, А, B, С, D, Е, F), перед которой записаны символы 0х или 0Х, например:

0х25 - шестнадцатеричное представление десятичного целого 37;

0ХFF - шестнадцатеричное представление десятичного целого 255.