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

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

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

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

Добавлен: 30.03.2023

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

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

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

Под "ячейкой памяти" будет пониматься непрерывная область памяти (с последовательно идущими адресами), выделенная программой для хранения данных. На рисунках мы будем изображать ячейку прямоугольником, внутри которого находятся хранящиеся в ячейке данные. Если у ячейки имеется имя, оно будет писаться рядом с этим прямоугольником.

Мы привыкли работать с числами, записанными в так называемой десятичной системе счисления. В ней имеется 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

Это слова, зарезервированные для синтаксических конструкций языка, причем их назначение нельзя переопределять внутри программы. (см. табл.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, тоже стандартизованы.


Тип

Длина (в байтах)

Диапазон или набор значений

boolean

не определено

true, false

byte

1

?128..127

char

2

0..216?1, или 0..65535

short

2

?215..215?1, или ?32768..32767

int

4

?231..231?1, или ?2147483648..2147483647

long

8

?263..263?1, или примерно ?9.2·1018..9.2·1018

float

4

-(2-2?23)·2127..(2-2?23)·2127, или примерно ?3.4·1038..3.4·1038, а также , , NaN

double

8

-(2-2?52)·21023..(2-2?52)·21023, или примерно ?1.8·10308..1.8·10308, а также , , NaN

Такая жёсткая стандартизация была необходима, чтобы сделать язык платформенно-независимым, что является одним из идеологических требований к Java и одной из причин её успеха. Тем не менее, одна небольшая проблема с платформенной независимостью всё же осталась. Некоторые процессоры используют для промежуточного хранения результатов 10-байтовые регистры или другими способами улучшают точность вычислений. Для того, чтобы сделать Java максимально совместимой между разными системами, в ранних версиях любые способы повышения точности вычислений были запрещены. Однако это приводило к снижению быстродействия. Выяснилось, что ухудшение точности ради платформенной независимости мало кому нужно, тем более, если за это приходится платить замедлением работы программ. После многочисленных протестов этот запрет отменили, но добавили ключевое слово strictfp, запрещающее повышение точности.

Преобразования при математических операциях

В языке Java действуют следующие правила:

1. Если один операнд имеет тип double, другой тоже преобразуется к типу double.

2. Иначе, если один операнд имеет тип float, другой тоже преобразуется к типу float.

3. Иначе, если один операнд имеет тип long, другой тоже преобразуется к типу long.

4. Иначе оба операнда преобразуются к типу int.

Данный способ неявного преобразования встроенных типов полностью совпадает с преобразованием типов в C++.

Заключение


Язык программирования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под её управлением.

Программой называют алгоритм, составленный на языке исполнителя. Далее под исполнителем мы будем понимать ЭВМ.

Язык программирования (формальный язык) отличается от естественных языков тем, что предназначен для управления ЭВМ, в то время как естественные языки используются, для общения людей между собой. Большинство языков программирования использует специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.

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

Благодаря языку C++ произошел стремительный прорыв в развитии всего программирования. С++ и сегодня занимает доминирующее положение среди всех зыков программирования в мире. Благодаря ему множество программистов разрабатывает огромное число различных проектов. И в будущем этот язык программирования сохранит свои позиции, совершенствуясь изо дня в день

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

Свойства языка Java:

- язык программирования объектно-ориентирован, оснащён богатой библиотекой классов и одновременно довольно прост для освоения;

- цикл разработки приложений сокращен при помощи того, что система построена на основе интерпретатора;

- приложение получается автоматически переносимым между множеством платформ и ОС;


- за счет встроенной системы сборки «мусора» программист освобождается от необходимости явного управления памятью;

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

- в приложения встроена система безопасности, не допускающая незаконного доступа и проникновения вирусов.

Список использованной литературы

1. Campbell Parallel Programming with Microsoft® Visual C++® / Campbell. - Москва: Гостехиздат, 2011. - 784 c.

2. Альфред, В. Ахо Компиляторы. Принципы, технологии и инструментарий / Альфред В. Ахо и др. - Москва: Высшая школа, 2015. - 882 c.

3. Балена, Франческо Современная практика программирования на Microsoft Visual Basic и Visual C# / Франческо Балена , Джузеппе Димауро. - М.: Русская Редакция, 2015. - 640 c.

4. Боровский, А. C++ и Pascal в Kylix 3. Разработка интернет-приложений и СУБД / А. Боровский. - М.: БХВ-Петербург, 2015. - 544 c.

5. Давыдов, В. Visual C++. Разработка Windows-приложений с помощью MFC и API-функций / В. Давыдов. - М.: БХВ-Петербург, 2014. - 576 c.

6. Довбуш, Галина Visual C++ на примерах / Галина Довбуш , Анатолий Хомоненко. - М.: БХВ-Петербург, 2012. - 528 c.

7. Зиборов, В. MS Visual C++ 2010 в среде .NET / В. Зиборов. - М.: Питер, 2012. - 320 c.

8. Кетков, Юлий Практика программирования: Visual Basic, C++ Builder, Delphi. Самоучитель (+ дискета) / Юлий Кетков , Александр Кетков. - М.: БХВ-Петербург, 2012. - 464 c.

9. Мешков, А. Visual C++ и MFC / А. Мешков, Ю. Тихомиров. - М.: БХВ-Петербург, 2013. - 546 c.

10. Неформальное введение в C++ и Turbo Vision. - Москва: ИЛ, 2010. - 384 c.

11. Панюкова, Т. А. Языки и методы программирования. Создание простых GUI-приложений с помощью Visual С++. Учебное пособие / Т.А. Панюкова, А.В. Панюков. - Москва: Мир, 2015. - 144 c.

12. Пахомов, Б. C/C++ и MS Visual C++ 2010 для начинающих / Б. Пахомов. - М.: БХВ-Петербург, 2011. - 736 c.

13. Пахомов, Борис C/C++ и MS Visual C++ 2012 для начинающих / Борис Пахомов. - Москва: СИНТЕГ, 2015. - 518 c.

14. Пахомов, Борис С/С++ и MS Visual C++ 2012 для начинающих / Борис Пахомов. - М.: "БХВ-Петербург", 2013. - 502 c.

15. Полубенцева, М. C/C++. Процедурное программирование / М. Полубенцева. - М.: БХВ-Петербург, 2014. - 448 c.

16. Поляков, А. Методы и алгоритмы компьютерной графики в примерах на Visual C++ / А. Поляков, В. Брусенцев. - М.: БХВ-Петербург, 2011. - 560 c.

17. Понамарев, В. Программирование на C++/C# в Visual Studio .NET 2003 / В. Понамарев. - М.: БХВ-Петербург, 2015. - 917 c.

18. Роберт, С. Сикорд Безопасное программирование на C и C++ / Роберт С. Сикорд. - Москва: РГГУ, 2014. - 496 c.

19. Секунов, Н. Программирование на C++ в Linux / Н. Секунов. - М.: БХВ-Петербург, 2016. - 425 c.