Файл: История возникновения и развития языка программирования Си (С++) и Java (Программирование на Си и С++).pdf
Добавлен: 31.03.2023
Просмотров: 322
Скачиваний: 1
Введение
Если спросить, с каким языком связано начало современной эпохи программирования, ответ прост – с языком Си. Этот язык был разработан
D. Ritchie в 70 – х годах прошлого века для компьютера PDP 11 от DEC
(Digital Equipment Corporation), в котором использовалась ОС UNIX.
В то время именно язык Си, несмотря на наличие определенных
языков программирования, определял направление всего будущего программирования.
C ++ был разработан в 80– х годах компанией Bell Laboratories и настоящее время считается одним из доминирующих языков программирования, который используется для разработки различных программных продуктов. По своей сути, C ++ является расширением языка C, его главным преимуществом от предшественника и от языков более высокого уровня является то, что C ++ поддерживает объектно – ориентированное программирование, перегруженные операции и возможность разработки полнофункциональных приложений windows
Как известно, современные приложения должны быть, прежде всего, безопасными, обладать высокой производительностью, быть функциональными в распределенной среде, нейтральными для архитектуры.
Эти факторы способствовали переосмыслению процесса создания и распространения приложений на разных компьютерах различной архитектуры. Требования к переносимости привели к необходимости отказаться от общепринятого метода создания и доставки двоичных файлов, которые содержат машинные коды и поэтому являются специфичными для платформы. В 1995 году компания Sun Microsystems приняла решение объявить о новом продукте Java, который отвечает всем вышеперечисленным требованиям.
Цель данной работы – изучить историю возникновения и развития языка программирования Си (С++) и 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++ существует пять типов констант: целочисленные, вещественные, символьные, строковые и логические.
- Целочисленная константа. Правила языка позволяют использовать три типа целочисленных констант: десятичную, шестнадцатеричную и восьмеричную. Основание определяется префикс базы данных в записи константы. Для десятичных констант префикс не требуется.
Десятичное целое число — это последовательность десятичных цифр, которая не начинается с нуля (если это не нулевое число), например:
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.
- Вещественные константы. Для представления вещественных (нецелевых) чисел используются константы, представленные в памяти компьютера в виде «с плавающей с точкой». Каждая вещественная константа состоит из следующих частей:
- целочисленная часть (десятичная целочисленная константа);
- дробная часть десятичной точки (десятичная целочисленная константа);
- знак(признак) показателя "e" или "E";
- показатель десятичной степени;
- при записи констант с плавающей запятой целая или дробная часть может быть опущена (но не одновременно);
- десятичная точка или символ экспоненты с показателем степени.