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

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

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

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

Добавлен: 22.04.2023

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

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

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

Введение

Если спросить, с каким языком связано начало современной эпохи программирования, ответ прост – с языком Си. Этот язык был разработан
D. Ritchie в 70 – х годах прошлого века для компьютера PDP 11 от DEC
(Digital Equipment Corporation), в котором использовалась ОС UNIX.
В то время именно язык Си, несмотря на наличие определенных
языков программирования, определял направление всего будущего программирования.

C ++ был разработан в 80– х годах компанией Bell Laboratories и настоящее время считается одним из доминирующих языков программирования, который используется для разработки различных программных продуктов. По своей сути, C ++ является расширением языка C, его главным преимуществом от предшественника и от языков более высокого уровня является то, что C ++ поддерживает объектно – ориентированное программирование, перегруженные операции и возможность разработки полнофункциональных приложений windows

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

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

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

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

Глава 1 Языки программирования Си и С++

1.1 Концепция языков программирования Си и C ++


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

Рассмотрим особенности этого языка.

Эффективность. Это программа, которая написана на языке с небольшим размером и в то же время с высокой скоростью.

Краткий. Это означает, что запись алгоритма выразительна и лаконична.

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

Сила. Мощность приложения достигается за счет использования большого количества библиотек.

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

Конечно, язык Си имеет свои недостатки. Это можно объяснить довольно слабым контролем преобразования типов и незащищенностью в процессе работы с адресами и динамической памятью, что позволяет легко допустить ошибку в программе, которую впоследствии будет трудно обнаружить. С другой стороны, эти недостатки позволили создать исполняемый код, эффективность которого приближается к эффективности ассемблерной программы. В 1981 году появился язык C++, который многие называют "C с классами". Автор языка-Bjarne Stroustrup[1] внес свой вклад в добавление привычных Си методов объектного языка-классов, которые служат для представления внутренней структуры объектов, механизма наследования и новых инструментов для работы с динамической памятью и вводом / выводом. Благодаря этим инструментам стало возможным не только писать объектно-ориентированные программы, но и создавать библиотеки шаблонов, классов - то есть расширять инструментарий пользователя и область применения самого языка. Си / C++ сочетает в себе перечисленные выше преимущества Си и новые возможности C++, предоставляя возможность “изнутри " изучить принципы программирования высокого уровня. Язык C++ содержит инструменты и методы как для высокоуровневого, так и для низкоуровневого программирования. К первым относятся классы, структуры, механизмы наследования и позднего связывания, шаблоны. Второй можно отнести к механизму указателя, работающему с символьными битами, работающему с механизмом прерывания. Из-за этого C++ очень привлекателен для решения широкого круга задач.



1.2 Краткая история развития языков С и С++

Язык Си был разработан D. Ritchie, сотрудником Bell Laboratories в 1972 году, для компьютера PDP 11 от DEC (Digital Equipment Corporation), в котором использовалась ОС UNIX. Большое влияние на Си оказал язык BCPL (Basic Combined Programming Language), который разработал Martin Richards в 1966 году.

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

В отличие от многих языков программирования (Ada, ALGOL-60 и др.), которые вступают в силу только после принятия соответствующих национальных и международных стандартов, Си не ставил перед собой задачу широкого распространения. До 1989 года язык стандартов не был обязательным, и в описании языка Си, авторы формально использовали книгу D.Ritchie и
Brian Kernighan, вышедшую в 1978 году в США. Роль этой книги, как источник неформального стандарта Си, используется и в наши дни.

Первый стандарт языка Си был принят официально в 1989 году Американским Национальным институтом стандартов (ANSI). Эта версия языка обозначается как Си89. В 1995 году стандарт Си89 был слегка изменен.

Язык C++, как следствие развитие языка Си появилась в 1979 году.
Его разработчиком был Bjarne Stroustrup[2], когда он начал работать в Bell Laboratories. Разработка и совершенствование языка C++ потребовали значительных ресурсов и усилий от его создателя в 80-90-е гг, в результате чего в 1998 году был принят стандарт ANSI / ISO для C++. В целом, C ++ — это объектно-ориентированная, улучшенная версия Си. C++ построена на версии Си89, которая содержит все изменения 1995 года, и эта версия Си89 теперь называется C-подмножеством языка C++. Хотя C++ был определен как набор объектно-ориентированных расширений, он может развиваться как автономный язык программирования. Сегодня его новые инструменты почти вдвое увеличили размер оригинального языка. Нет необходимости доказывать, что C++ является одним из самых мощных компьютерных языков, разработанных до сих пор.

В 1999 году появился второй стандарт ANSI / ISO для Си. Эта версия называется C99, которая также включает в себя несколько продвинутых инструментов. Некоторые из этих "новых" инструментов пришли из C++. Таким образом, отдельные элементы, представленные в C99, несовместимы с языком C++. Это означает, что C99 больше не считается чистым подмножеством C++. К счастью, причина многих "несовместимостей" кроется в специальных средствах. Направления, которые можно легко преодолеть. Язык C++ позволяет создавать программы, которые будут совместимы с этим языком.


Работы по разработке новых стандартов для Си и C++ шли следующие несколько лет и были завершены в конце 2011 года. В октябре 2011 года был введен новый стандарт C++[3], его обозначение C++11 или ISO / IEC 14882:2011.

И в декабре 2011 года. Они также приняли новый стандарт языка Си.
Эта версия условно называется C11 или ISO / IEC 9899: 2011. Некоторые из его функций уже получены компилятором GCC.

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

1.3 Базовые понятия языка

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

В алфавите языка C++ разрешены определенные наборы символов, которые, условно, можно разделить на группы символов[4]:

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

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

Следующие имена нельзя использовать как идентификаторы:

  • 25A (начинается с числа);
  • Alfa (не допускается кириллица).

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

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

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

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


В C++существует 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. Целочисленная константа. Правила языка позволяют использовать три типа целочисленных констант: десятичную, шестнадцатеричную и восьмеричную. Основание определяется префикс базы данных в записи константы. Для десятичных констант префикс не требуется.

Десятичное целое число — это последовательность десятичных цифр, которая не начинается с нуля (если это не нулевое число), например:

200 45 0 2019

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

015 — это восьмеричное представление десятичного целого числа 13;

032 — это восьмеричное представление десятичного целого числа 26.

Шестнадцатеричное целое число — это последовательность шестнадцатеричных цифр (0, 1,…, 9, A, B, C, D, E, F) перед которым стоят символы 0x или 0X, например:

0x2D — это шестнадцатеричное представление десятичного целого числа 45;

0X7A — это шестнадцатеричное представление десятичного целого числа 122.

  1. Вещественные константы. Для представления вещественных (нецелевых) чисел используются константы, представленные в памяти компьютера в виде «с плавающей с точкой». Каждая вещественная константа состоит из следующих частей:
  • целочисленная часть (десятичная целочисленная константа);
  • дробная часть десятичной точки (десятичная целочисленная константа);
  • знак(признак) показателя "e" или "E";
  • показатель десятичной степени;
  • при записи констант с плавающей запятой целая или дробная часть может быть опущена (но не одновременно);
  • десятичная точка или символ экспоненты с показателем степени.