Файл: История возникновения и развития языка программирования Си (С++) и Java (ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ).pdf
Добавлен: 31.03.2023
Просмотров: 131
Скачиваний: 1
ВВЕДЕНИЕ
Современный мир информационных технологий очень активно развивается. Одним из главных её строительных блоков является программирование.
Язык программирования — это набор правил для компьютера или вычислительного устройства с целью решения определенных задач. Термин «язык программирования» обычно относят к языкам высокого уровня, таким как BASIC, C, C ++, COBOL, Java, FORTRAN, Ada, Pascal.
Компьютер понимает только значения в виде единиц и нулей. Однако программировать на таком уровне является очень сложной задачей для программиста.
Языками программирования высокого уровня называют языки, которые ориентированы на человека, более близки и понятны ему. В таких языках не учитываются особенности компьютерных архитектур. Создаваемые программы на уровне исходных текстов средствами этих языков легко переносимы на другие платформы, имеющие транслятор соответствующего языка. Создание языков высокого уровня по времени совпадает с появлением языков программирования третьего поколения. Это универсальные языки, с их помощью удается решать задачи из любых областей.
«Язык высокого уровня» относится к более высокому уровню абстракции, чем машинный код. Вместо того, чтобы иметь дело с регистрами, адресами памяти и стеками вызовов, языки высокого уровня имеют дело с переменными, массивами, объектами, сложными арифметическими или булевыми выражениями, подпрограммами и функциями, потоками, блокировками и другими абстрактными концепциями компьютерной науки, с акцентом на удобство использования по сравнению с оптимальной эффективностью программы.
Как правило, в эти языки встроены мощные операторы, позволяющие одной строкой описать такую функциональность, для реализации которой на языках младших поколений потребовались бы тысячи строк исходного кода. К числу языков этого поколения относятся: С/C++ (Си++) и Java. Это очень популярные языки программирования, которые используются во многих областях современной разработки программного обеспечения. В этом и заключается актуальность данной работы.
Цель данной работы исследование истории возникновения и развития языков программирования С (С++) и Java. Соответственно, объектами исследования являются такие языки, как С, С++ и Java, а предметом исследования их история возникновения и развития.
Актуальность данной работы довольно большая, поскольку эти языки используются повсеместно и имеют сильное влияние на мир информационных технологий.
В рамках курсового проекта должны быть решены следующие задачи:
- раскрытие понятия «программирование»;
- анализ высокоуровневых языков программирования;
- исследование возникновения и развития языков C, C++ и Java;
- анализ перспективы развития этих языков;
- изучение литературы в данной области.
Методами исследования данной работы являются теоретический анализ, изучение соответствующей литературы, сравнение. Весь использованный список литературы представлен в соответствующем разделе работы.
ГЛАВА 1. ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1 Теоретические понятия программирования
Программирование – это раздел информатики, изучающий методы и приемы составления программ для компьютеров. Кроме того, программирование – это подготовка задачи к решению ее на компьютере.
Программа – это последовательность команд, понятных компьютеру.
Программа записывается в виде символов, к числу которых относятся латинские и русские буквы, цифры, знаки препинания и знаки операций.
Алгоритм – это точный рецепт, предписание, определяющее логический и вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату.
Процессы управления не только компьютерами, но всеми другими техническими устройствами и системами сводятся к реализации определенных алгоритмов, что показывает принадлежность алгоритмизации и понятия алгоритма к их родовой дисциплине – кибернетике. [1, 3, 21]
Свойства алгоритма:
- детерминированность – точность указаний, исключающая их произвольное толкование;
- дискретность – возможность расчленения вычислительного процесса на отдельные элементарные операции, возможность выполнения которых не вызывает сомнений;
- результативность – прекращение процесса через определенное число шагов с выдачей искомых результатов или сообщения о невозможности продолжения вычислительного процесса;
- массовость – пригодность алгоритма для решения всех задач заданного класса.
Два других краеугольных термина информатики – это структуры и базы данных.
Данные – это информация, переносимая во времени, то есть хранящаяся на физическом носителе информации в виде знаков, символов, значений, для ее последующего использования через какое-то время: наносекунды, секунды, часы, годы, тысячелетия. [12, 14]
Структура данных – это описательная часть компьютерной программы, позволяющая хранить и обрабатывать множество однотипных и/или логически связанных данных в вычислительной технике. Для добавления, поиска, изменения и удаления данных структура данных предоставляет некоторый набор специальных функций, предназначенных для обмена информацией, так называемый «интерфейс». [16]
Для массовой обработки большого количества данных в современных процессах обработки информации, программировании сегодня используется не хранение и обработка данных внутри самой компьютерной программы, в ее структурах данных, а в специальных базах данных.
1.2 Высокоуровневые языки программирования
Fortran — это первый компилируемый язык, созданный Джимом Бэкусом в 50-е годы. Программисты, разрабатывавшие программы исключительно на ассемблере, выражали серьезное сомнение в возможности появления высокопроизводительного языка высокого уровня, поэтому основным критерием при разработке компиляторов Фортрана являлась эффективность исполняемого кода. Хотя в Фортране впервые был реализован ряд важнейших понятий программирования, удобство создания программ было принесено в жертву возможности получения эффективного машинного кода. Однако для этого языка было создано огромное количество библиотек, начиная от статистических комплексов и кончая пакетами управления спутниками, поэтому Фортран продолжает активно использоваться во многих организациях, а сейчас ведутся работы над очередным стандартом Фортрана F2k, который появится в 2000 году. Имеется стандартная версия Фортрана HPF (High Performance Fortran) для параллельных суперкомпьютеров со множеством процессоров. [1, 19] В целом, классификация языков показана на рисунке 1.
Рисунок 1 — Классификация языков программирования
Cobol — это компилируемый язык для применения в экономической области и решения бизнес-задач, разработанный в начале 60-х годов. Он отличается большой «многословностью» — его операторы иногда выглядят как обычные английские фразы. В Коболе были реализованы очень мощные средства работы с большими объемами данных, хранящимися на различных внешних носителях. На этом языке создано очень много приложений, которые активно эксплуатируются и сегодня. Достаточно сказать, что наибольшую зарплату в США получают программисты на Коболе. [3, 15]
Algol компилируемый язык, созданный в 1960 году. Он был призван заменить Фортран, но из-за более сложной структуры не получил широкого распространения. В 1968 году была создана версия Алгол 68, по своим возможностям и сегодня опережающая многие языки программирования, однако из-за отсутствия достаточно эффективных компьютеров для нее не удалось своевременно создать хорошие компиляторы.
Язык Паскаль, созданный в конце 70-х годов основоположником множества идей современного программирования Никлаусом Виртом, во многом напоминает Алгол, но в нем ужесточен ряд требований к структуре программы и имеются возможности, позволяющие успешно применять его при создании крупных проектов. Basic (Бейсик). Для этого языка имеются и компиляторы, и интерпретаторы, а по популярности он занимает первое место в мире. Он создавался в 60-х годах в качестве учебного языка и очень прост в изучении. [12]
С (Си). Язык Си (C) создан в 1972 г. Д.Ритчем (D.Ritchie) и К.Томпсоном (K.Thompson) из Bell Labs/Lucent Technologies при поддержке Б.Кернигана. Ими же в 1973 г. на языке Си представлена операционная система UNIX. В рекламных целях UNIX в университетах распространялся почти бесплатно, вместе с UNIX распространялся и Си. Благодаря эффективности исполнения программ, написанных на этом языке, он получил широкое распространение. До сих пор Си – один из лучших языков для системного программирования. Он стандартизован в 1989 г., стандартная версия языка обозначается ANSI C. Данный язык был создан в лаборатории Bell и первоначально не рассматривался как массовый. Он планировался для замены ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы, и в то же время не зависеть от конкретного типа процессора. Си во многом похож на Паскаль и имеет дополнительные средства для прямой работы с памятью (указатели). На этом языке в 70-е годы написано множество прикладных и системных программ и ряд известных операционных систем (Unix). [14, 19]
Си++ — это объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко повысить производительность программистов, наложилось на унаследованную от языка Си определенную низкоуровневость, в результате чего создание сложных и надежных программ потребовало от разработчиков высокого уровня профессиональной подготовки.
Язык программирования Java разработан в 1995 г. Джеймсом Гослингом из компании Sun Microsystems на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка — компиляция не в машинный код, а в платформно-независимый байт-код (каждая команда занимает один байт). Этот байт- код может выполняться с помощью интерпретатора — виртуальной Java-машиныJVM (Java Virtual Machine), версии которой созданы сегодня для любых платформ. Благодаря наличию множества Java-машин программы на Java можно переносить не только на уровне исходных текстов, но и на уровне двоичного байт-кода, поэтому по популярности язык Ява сегодня занимает второе место в мире после Бейсика. Особое внимание в развитии этого языка уделяется двум направлениям: поддержке всевозможных мобильных устройств и микрокомпьютеров, встраиваемых в бытовую технику (технология Jini) и созданию платформно-независимых программных модулей, способных работать на серверах в глобальных и локальных сетях с различными операционными системами (технология Java Beans). Пока основной недостаток этого языка — невысокое быстродействие, так как язык Ява интерпретируемый. [12, 14, 19]
В данной главе были рассмотрены понятие «программирование» и проведён обзор нескольких высокоуровневых языков программирования. В последующих главах будут подробнее рассмотрены языки C++ и Java.
ГЛАВА 2. ИСТОРИЯ ВОЗНИКНОВЕНИЯ И РАЗВИТИЯ ЯЗЫКА C/C++
2.1 Появление языка С
Язык программирования C первоначально использовался для работы по разработке больших систем, особенно программ, которые составляют операционную систему. C был принят как язык разработки системы, поскольку он реализует программы, которые работают почти так же быстро, как код, написанный на ассемблере. С очень широко используется уже много лет. К некоторым областям в которых используется этот язык относятся следующие:
- операционные системы;
- компиляторы языка;
- текстовые редакторы;
- сетевые драйверы;
- базы данных;
- языковые переводчики.
Язык С составляет подмножества языка С++. Практически более новый язык включает в себя весь С и добавляет ему новые функции, а самое главное — объектно-ориентированную парадигму. [3, 14, 17]
Программа на C может состоять от 3 до миллионов строк и может быть записана в один или несколько текстовых файлов с расширением «.c» ; например, hello.c
Язык B был полезен в контексте проблем, с которыми сталкиваются создатели UNIX в операционной системе. Язык B был взят из BCPL Мартином Ричардсом. Как уже говорилось, UNIX была написана на ассемблере. Чтобы выполнять даже небольшие операции в UNIX, нужно было писать много страниц кода. Язык B решил эту проблему. В отличие от ассемблера требовал значительно меньше строк кода для выполнения каких-то задач в UNIX. Тем не менее, было много того, что B не мог сделать. Гораздо больше ожидалось от B в контексте быстро меняющихся требований. Например, B не распознает типы данных. Даже в языке B типы данных были выражены машинным языком. Он также не поддерживает структуры данных.
Было ясно, что-то должно измениться. Итак, Ритчи и его коллеги приступили к преодолению препятствий, стоящих перед ними. Язык C был разработан в 1971-73 годах. При всех своих ограничениях C обязан своим рождением B, поскольку C сохранил много того, что предложил B, добавив такие новшества, как типы данных и структуры данных. Название C было выбрано потому, что оно шло за B. [6]