Файл: История возникновения и развития языков программирования Си (С++) и Java (Программирование на С и С++).pdf
Добавлен: 30.03.2023
Просмотров: 340
Скачиваний: 1
СОДЕРЖАНИЕ
ГЛАВА 1 Программирование на С и С++
1.1 Языки программирования С и С++
1.2 Краткая история возникновения и развития языков С и С++
2.1 Понятие языка программирования Java
2.2 Краткая история возникновения языка программирования Java
ГЛАВА 3 Языки программирования С (С++) и Java в современном мире
3.1 С++, Java и другие языки программирования. Их область применения
- аппаратные средства, которые обеспечивают ускоренную обработку байт-кода
Идеи, которые лежат в основе концепции и различных реализациях среды виртуальной машины Java, стали основой для расширения перечня языков, которые можно было бы использовать для создания программ, которые исполняли на виртуальной машине, например выражение идеи Java в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы .NET от компании Microsoft.
Основные возможности:
- автоматическое управление памятью;
- поддержка шаблонов (начиная с версии 1.5);
- параллельное выполнение программ.
- наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;
- встроенные в язык средства создания многопоточных приложений;
- унифицированный доступ к базам данных:
- на уровне отдельных SQL-запросов - на основе JDBC, SQLJ;
- расширенные возможности обработки исключительных ситуаций;
- богатый набор средств фильтрации ввода/вывода;
- набор стандартных коллекций, таких как массив, список, стек и т. п.;
- наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI).
Итак, изучив материал, мы имеем, что Java – язык программирования с собственной виртуальной машиной, позволяющая функционировать на любой архитектуре ПК, где присутствует данная ВМ. Корни этого языка и С++ общие, ведь компилятор брали за основу у языка С++, но концепция, отличающая их, заключалась в простоте использования - сделать языки программирования ближе к обычным потребителям.
2.2 Краткая история возникновения языка программирования Java
язык программирование история
В 1990 году разработчик ПО компании Sun Microsystems Патрик Нотон решил перейти работать в компанию NeXT. В ответ, МакНил попросил Нотона составить список причин своего ухода и предложить решение проблем.
Нотон изложил свои претензии, беспощадно раскритиковав недостатки компании SunMicrosystems, в частности, архитектуру ПО NeWS. На удивление, но его письмо оказалось успешным: оно было разослано всем ведущим инженерам SunMicrosystems, которые сразу откликнулись и поддержали своего коллегу и его взгляды на ситуацию в компании, из-за общего резонанса высшее руководство компании обратило внимание на это, а после и вовсе одобрило.
И в день, когда Нотон должен был уйти из компании, было принято решение о создании команды разработчиков, с полной свободой действий, но с условием, создать нечто необыкновенное.
Команда из шести человек, под названием Green, углубленно исследовали бытовые устройства и устройства дистанционного управления, с целью найти способ, с помощью которого можно было бы установить связь и взаимодействие между этими устройствами. Через некоторое время команда осознала, что эти устройства были реализованы на разных процессорах, а значит, при попытке добавить дополнительные функции или характеристики, потенциал функций ограничен средствами, зашитыми в аппаратное обеспечение. Эта проблема, вместе с ограниченностью памяти микросхем устройств, сподвигла новый подход к программированию ПО.
Команда приступила к разработке нового объектно-ориентированного языка программирования, с названием Oak, в честь дерева, росшего под окном Гослинга.
Вскоре команда Green преобразовалась в компанию FirstPerson. Новая компания обладала интересной концепцией, но не могла найти ей подходящего применения, по причине которой посыпались ряды неудач, но неожиданно ситуация для компании резко изменилась: появился Mosaic – с проэктом WorldWide Web, с которого началось бурное развитие интернета.
Нотон предложил идею использовать язык Oak в создании интернет - приложений. Таким образом, Oak стал самостоятельным продуктом, вскоре был написан к нему компилятор и создан Oak-браузер под названием "WebRunner". В 1995 году компания SunMicrosystems приняла решение объявить о новом продукте, переименовав его в Java (в теории, данное название появилось из-за любви к кофе программистов). Когда Java стали использовать в интернет, то стало необходимым запускать Java-аплеты - программы, загружаемые через интернет, для функционирования языка. WebRunner переименовался в HotJava и компания Netscape начала поддержу Java-продуктов.
2.3 Базовые понятия языка
Алфавит языка Java состоит из букв, десятичных цифр и специальных символов. Буквами считаются латинские буквы (кодируются в стандарте ASCII), буквы национальных алфавитов (кодируются в стандарте Unicode, кодировка UTF-16), а также соответствующие им символы, кодируемые управляющими последовательностями
Буквы и цифры можно использовать в качестве идентификаторов переменных, методов и других элементов языка программирования. При использовании в идентификаторах национальных алфавитов в ряде случаев могут возникнуть проблемы – эти символы будут показываться в виде вопросительных знаков, по причине того, что не во всех архитектурах ПК есть поддержка символов других стран.
Как буквы рассматривается только часть символов национальных алфавитов. Остальные символы национальных алфавитов - это специальные символы. Они используются в качестве операторов и разделителей языка Java и не могут входить в состав идентификаторов.
Латинские буквы ASCII
ABCD...XYZ - заглавные
abcd...xyz – строчные
Дополнительные "буквы" ASCII
_ - знак подчеркивания,
$ - знак доллара.
Национальные буквы на примере алфавита русского языка
АБВГ…ЭЮЯ - заглавные (прописные),
абвг…эюя – строчные
Десятичные цифры 0 1 2 3 4 5 6 7 8 9
Десятичные и шестнадцатеричные цифры и целые числа
Целые числовые константы[8] в исходном коде Java (так называемые литерные константы) могут быть десятичными или шестнадцатеричными. Они записываются либо символами ASCII, или символами Unicode следующим образом.
Десятичные константы записываются как обычно. Например, 61.
Шестнадцатеричная константа начинается с символов 0x или 0X (цифра 0, после которой следует латинская буква X), а затем идет само число в шестнадцатеричной нотации. Например, 0x10 соответствует
; 0x2F соответствует
, и т.д. О шестнадцатеричной нотации рассказано чуть ниже.
Ранее иногда применялись восьмеричные числа, и в языках C/C++, а также старых версиях Java можно было их записывать в виде числа, начинающегося с цифры 0. То есть 010 означало
. В настоящее время в программировании восьмеричные числа практически никогда не применяются, а неадекватное использование ведущего нуля может приводить к логическим ошибкам в программе.
Целая константа в обычной записи имеет тип integer. Если после константы добавить букву L (или l, что хуже видно в тексте, хотя в среде разработки выделяется цветом), она будет иметь тип long, обладающий более широким диапазоном значений, чем тип int.
Объясним теперь, что такое шестнадцатеричная нотация записи чисел и зачем она нужна.
Информация представляется в компьютере в двоичном виде – как последовательность бит. Бит – это минимальная порция информации, он может быть представлен в виде ячейки, в которой хранится или ноль, или единица. Но бит – слишком мелкая единица, поэтому в компьютерах информация хранится, кодируется и передается байтами - порциями по 8 бит.
Под "ячейкой памяти" будет пониматься непрерывная область памяти, выделенная программой для хранения данных. На рисунках мы будем изображать ячейку прямоугольником, внутри которого находятся хранящиеся в ячейке данные.
Мы привыкли работать с числами, записанными в так называемой десятичной системе счисления. В ней имеется 10 цифр (от 0 до 9), а в числе имеются десятичные разряды. Каждый разряд слева имеет вес 10 по сравнению с предыдущим, то есть для получения значения числа, соответствующего цифре в каком-то разряде, стоящую в нем цифру надо умножать на 10 в соответствующей степени. То есть
, и т.п.
В программировании десятичной системой счисления пользоваться не всегда удобно, так как в компьютерах информация организована в виде бит, байт и более крупных порций. Человеку неудобно оперировать данными в виде длинных последовательностей нулей и единиц. В настоящее время в программировании стандартной является шестнадцатеричная система записи чисел. Например, с ее помощью естественным образом кодируется цвет, устанавливаются значения отдельных бит числа, осуществляется шифрование и дешифрование информации, и так далее. В этой системе счисления все очень похоже на десятичную, но только не 10, а 16 цифр, и вес разряда не 10, а 16. В качестве первых 10 цифр используются обычные десятичные цифры, а в качестве недостающих цифр, больших 9, используются заглавные латинские буквы A, B, C, D, E, F:
0 1 2 3 4 5 6 7 8 9 A B C D E F
То есть A=10, B=11, C=12, D=13, E=14, F=15.
Заметим, что в шестнадцатеричной системе счисления числа от 0 до 9 записываются одинаково, а превышающие 9 отличаются. Для чисел от 10 до 15 в шестнадцатеричной системе счисления используются буквы от A до F, после чего происходит использование следующего шестнадцатеричного разряда. Десятичное число 16 в шестнадцатеричной системе счисления записывается как 10. Для того, чтобы не путать числа, записанные в разных системах счисления, около них справа пишут индекс с указанием основания системы счисления. Для десятичной системы счисления это 10, для шестнадцатеричной 16. Для десятичной системы основание обычно не указывают, если это не приводит к путанице. Точно так же в технической литературе часто не указывают основание для чисел, записанных в шестнадцатеричной системе счисления, если в записи числа встречаются не только "обычные" цифры от 0 до 9, но и "буквенные" цифры от A до F. Обычно используют заглавные буквы, но можно применять и строчные.
Рассмотрим примеры.
Зарезервированные слова языка Java[9] - это слова, зарезервированные для синтаксических конструкций языка, причем их назначение нельзя переопределять внутри программы. (см. табл.2)
Таблица 2
Слова, зарезервированные для синтаксических конструкций языка
|
abstract |
boolean |
break |
byte |
case |
|
catch |
char |
class |
const |
continue |
|
default |
do |
double |
else |
enum |
|
extends |
false |
final |
finally |
float |
|
for |
goto |
if |
implements |
import |
|
instanceof |
int |
interface |
long |
native |
|
new |
null |
package |
private |
protected |
|
public |
return |
short |
static |
super |
|
switch |
synchronized |
this |
throw |
throws |
|
transient |
true |
try |
void |
volatile |
|
while |
Их нельзя использовать в качестве идентификаторов (имен переменных, подпрограмм и т.п.), но можно использовать в строковых выражениях.
В языке Java только 8 примитивных (скалярных, простых) типов: boolean, byte, char, short, int, long, float, double.
Длины и диапазоны значений примитивных типов определяются стандартом, а не реализацией и приведены в таблице. Тип char сделали двухбайтовым для удобства локализации (один из идеологических принципов Java): когда складывался стандарт, уже существовал Unicode-16, но не Unicode-32. Поскольку в результате не осталось однобайтового типа, добавили новый тип byte, причем в Java, в отличие от других языков, он не является беззнаковым. Типы float и double могут иметь специальные значения, и «не число» (NaN). Для типа double они обозначаются Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.NaN; для типа float - так же, но с приставкой Float вместо Double. Минимальные положительные значения, принимаемые типами float и double, тоже стандартизованы.