Файл: «Современные языки программирования»( Поколения языков программирования).pdf
Добавлен: 18.06.2023
Просмотров: 219
Скачиваний: 2
СОДЕРЖАНИЕ
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ СОВРЕМЕННЫХ ЯЗЫКОВ И СИСТЕМ ПРОГРАММИРОВАНИЯ
1.1 Определение и назначение языков и систем программирования
1.2 Классификация и история развития языков программирования
1.3 Поколения языков программирования
ГЛАВА 2 ХАРАКТЕРИСТИКА СОВРЕМЕННЫХ ЯЗЫКОВ И СИСТЕМ ПРОГРАММИРОВАНИЯ
2.1 Современные языки программирования
2.2 Современные системы программирования
2.3 Современной системе программирования на языке C#
Несмотря на то, что объектно-ориентированные языки применяются с 50-х годов прошлого века, за последние десятилетия мы являемся очевидцами безудержного повышения их применения в потреблении программного обеспечения. Изначально языки не пользовались столь высокой попо- лярностью, но успех таких языков, как Java, C++ и С# притянули интерес к объектно-ориентированным технологиям. И это не просто так. После многолетней и столь тяжелой борьбы с установившимися нормами, объектно- ориентированное программирование (ООП) в своем развитии достиглос- воего расцвета и люди смогли разглядеть допустимые потенциалы этой технологии. На сегодняшний день во многих компаниях его использование обязательно. И без преувеличения можно сказать, что в результате сделаны верные выводы.
Если необходимо разобраться в состоянии ООП, то необходимо знать какие-то азы из истории программирования. ООП естественно не было основано за несколько дней. Появление этого программирования является частичкой в эволюции программного обеспечения. Постепенно появилась возможность установить, какие методы логичны для работы, а какие нет. ООП действенно соединяет в себе наиболее удачные, испытанные временем методы.
Буквы ОО в ООП обозначают «Объектно-ориентированный подход». Данный подход подразумевает в себе все стилевые прогрессы, опирающиеся на понятии «объект» — понятии, которые многие люди называют «вещь». Каждый объект характеризуется собственными свойствами и поведением [1]. Объектно-ориентированный подход, возможно, использовать в программировании, анализе и даже в дизайне. Можно сказать, что объектно-ориентированный подход - это способ думать, а также способность воспринимать окружающий мир с точки зрения теории объектов. Иначе, объектно-ориентированный подход подразумевает то, что можно описать в терминах теории объектов.
ООП занимает следующую логическую ступень после модульного программирования. ООП добавляет к модулю как наследование так и полиморфизм.
Если представить, что при помощи объектно-ориентированного подхода разработано приложение моделирования в реальном масштабе времени торгового терминала или тележки для магазина самообслуживания [2]. Данное приложение, разработанное по методологии ООП, будет включать следующие объекты:
- item (товар),
- shopping cart (тележка для магазинов самообслуживания),
- coupon (купон),
- cashier (кассир).
Перекликаясь между собой, данные объекты позволяют программе работать и управляют ее. Например, когда кассир высчитывает сумму заказа, он пробивает чек на сумму, которая соответствует цене каждого товара. Определение программы в терминах объектов — это наиболее понятный метод создания программного обеспечения. Объекты дают возможность в программе моделировать реальный мир при помощи: существительных, глаголов и прилагательных, взаимствованные из предметной области.
В примере с тележками для магазинов самообслуживания сокрытие реализации показывает, что кассир при рассчете стоимости покупки не смотрит на исходные данные. Там, где хранятся числовые данные, характеризующие единицу товара, и другие переменные талона, кассир не может обратиться к ячейкам массива. Вместо этого он работает с объектом item (товар). Кассир знает, как запросить у объекта item (товар) его цену.
Объект — это конструкция программы, в которой инкапсулировано состояние и поведение. С помощью объектов можно создавать программу, применяя термины реального мира и абстракции [1].
ООП, словно настоящий мир, складывается из множества объектов. В данном языке программирования С# все состоит из объектов, начиная от самых первых, низкоуровневых классов, целых, логических и заканчивая более сложными классами.
Объекты ООП подразделяются: по их свойствам и по поведению. В биологии птицы, кошки, тигры и люди относятся к классу млекопитающих. Связывают эти различные организмы их совместные свойства. Точно также в мире программного обеспечения объекты относятся к одному или разным классам.
Объектам одного класса характерны общие свойства. Иначе говоря, класс определяет: свойства и поведение, описывающие объект, а также, что в особенности важно, те сообщения, на которые отзывается объект. Если один объект проявляет воздействие на поведение другого объекта, он не делает это непосредственно, а запрашивает другой объект изменить себя, употребляя кое-какую дополнительную информацию. Как правило, это называется «посылка сообщения».
Класс связывает объекты с совместными свойствами и поведением. Объекты, принадлежащие к одному классу, имеют те же свойства, и описываются одинаковым поведением.
Один объект может воздействовать на поведение второго объекта, осуществляя воздействия над ним. Вместо термина действие применяют термины: вызов метода, вызов функции или передача сообщения. Немаловажно, не то, какой из данных терминов применяется, а то, что эти действия призывают проявлять поведения объекта.
Термин передача сообщения значительно лучше представляет суть объектно-ориентированного подхода. Этот термин отображает динамичность взаимодействия объектов. Он подчеркивает различие между сообщением и объектом. С помощью него, легче уяснить сущность взаимодействия объектов.
Объединяем все вместе: классы и объекты.
На примере, возьмем объект item (товар). У товара есть обозначение (description), уникальный признак (id), цена за штуку (unitprice), численность (quantity) и скидка (необяз.) (optionaldiscount). Товар обязан понимать, как высчитать цену со скидкой (discountedprice). В мире ООП все объекты item (товар) являются экземплярами класса Item.
Такие методы, как publicItem (Stringid, String description, intquantity, double price) получили название конструкторы. Конструкторы инициализируют объект в процессе его образования.
Конструкторы - это методы, которые используются для инициализации объектов в процессе их осуществления. В конструкторе и в экземпляре Item употребляется this; this - это ссылка, показывающая на объект- экземпляр. У каждого объекта есть своя ссылка.
Свойства Discount(), Description() и метод Adjusted_Total() осуществляют поведение класса Item. Вызвав эти методы, они возвращают или устанавливают параметры. Если кассир высчитывает цену заказа, т.е. общую цену содержимого тележки в магазине самообслуживания, он изымает любой товар и отправляет объекту сообщение Adjusted_Total(). unit_price, discount, quantity, description и id выступает внутренними переменными класса Item. В их значениях хранится информация о состоянии объекта [1].
Способы поведения, реализуемые методом Adjusted_Total() и свойством Discount() называют средствами доступа, т.к. они дают доступ к внутренним (private) данным объекта. Доступ может быть прямым, оносуществлён в свойстве Discount(). Однако порой объект обязан предварительно сделать кое-какие вычисления, для того чтобы показать нужную информацию, как в методе Adjusted_Total().
При помощи средств доступа, возможно, получить доступ к внутренней (private) информации объекта, но при этом невозможно увидеть, находится ли информация в переменной, в комбинации переменных или вычисляется. Средства доступа дают возможность изменить (set) или считать (get) значение и могут привести к побочным эффектам, воздействуя на внутреннее состояние. Во время работы программа употребляет классы, такие как Item, для образования или реализации объектов, реализовывающих задачу. Любой новый экземпляр - это дубликат класса Item. Тем не менее, реализованный экземпляр выполняет свои собственные функции и отслеживает свое личное состояние. В результате, то, что образовывается дубликат, может вести себя по-разному во время своего существования. Допустим, вы создали два объекта-товара как экземпляры одного и того же класса Item, у одного элемента возможноесть скидка к цене 10%, тогда как у другого скидки к цене может и не быть вообще. Отдельные товары обходятся дороже, чем другие. Один товар может стоить 1 200 долларов, а дугой — 2,89 долларов, полагая, что состояние товара может изменяться с течением времени, товары все равно будут оставаться дубликатом класса Item. Запустим объекты в работу.
Метод Main() представляет, как смотрится небольшая программа, использующая класс Item. Вначале программа реализует четыре товара класса Item. Данная программа может формировать эти товары во время просмотра конечного пользователя каталога в диалоговом режиме или во время сканирования кассиром штрих-кодов товаров. Данная программа обрзовывает ряд товаров, использует скидки к цене, а затем распечатывает чек. Программа показывает все взаимодействия объектов, отправляя сообщения товарам. Скажем, программа дает 16% скидку к цене сыра, отправляя сообщение Discount() данному товару. И, в конце, программа выводит чек на экран. Необходимо не забывать о том, что вся программа была создана целиком из терминов, определенных в классе Item с помощью поведения, реализуемого методами класса Item. По-другому говоря, программа создана при помощи существительных и глаголов, которые являются терминами в предметной области «тележка для магазинов самообслуживания».
Связь объектов - это немаловажная часть ООП. Есть два важнейших способа связи объектов.
Первый способ: объекты живут независимо друг от друга. В тележке для магазинов самообслуживания в одно и то же время могут быть два товара - экземпляра класса Item. Если этим объектам необходимо взаимодействовать, то они отправляют друг другу сообщения. Объекты взаимодействуют друг с другом с помощью сообщений. Получив сообщение, объект осуществляет установленные действия. Передать сообщение - это одно и то же, что вызвать метод с целью изменить состояние объекта или использовать одну из моделей поведения [2].
Второй способ: один объект может включать другие объекты. Так же как в ООП программа состоит из объектов, так и объекты могут формироваться из других объектов при помощи агрегации.
Из примера класса Item можно отметить, что один объект включает множество других объектов. Например, этот объект (класс Item) включает объекты description и id, они касаются типа String. Каждый из этих объектов имеет интерфейс, который содержит методы и признаки. Передача информации между объектами и теми объектами, которые они хранят, совершается, как и в других случаях. Передача сообщений друг другу осуществляется, если эти объекты взаимодействуют. Сообщение - это важнейших понятий объектно-ориентированного подхода. При помощи механизма сообщений объекты могут сберегать свою самостоятельность. Объект, который отсылает сообщение другому объекту, все равно, как этот другой объект осуществит запрашиваемое действие. Объекту необходимо лишь, чтобы действие было осуществлено.
Встречаясь с разногласиями в терминологии, мы находим одно из определений, а затем придерживаемся его. Выбор часто определен практическими взглядами. В ООП применяются достижения наиболее ранних технологий, так же как и при образовании других парадигм программирования, парадигму ООП разрабатывали с учетом всех наиболее сильных сторон предыдущих парадигм, пытаясь избежать их изъянов. Поэтому в ООП включены все достижения: процедурного и модульного программирования.
При помощи объектно-ориентированного программирования необходимо добиться главных целей, которые будут анализироваться в качестве достоинств программы, созданных при помощи объектно- ориентированного подхода [2]:
- естественность;
- надежность;
- возможность повторного использования;
- удобство в сопровождении;
- способность совершенствоваться;
- удобство периодического выпуска (издания) новых версий.
ЗАКЛЮЧЕНИЕ
Со времени создания первых программируемых машин человечество придумало более двух с половиной тысяч языков программирования. Каждый год их число пополняется новыми. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.
Язык программирования может быть представлен в виде набора спецификаций, определяющих его синтаксис и семантику. Для многих широко распространённых языков программирования созданы международные стандарты. Специальные организации проводят регулярное обновление и публикацию спецификаций и формальных определений соответствующего языка.
В рамках таких комитетов продолжается разработка и модернизация языков программирования и решаются вопросы о расширении или поддержке уже существующих и новых языковых конструкций.
В представленной работе проведено исследование основных положений, связанных с языками и системами программирования, рассмотрены основные классификации языков программирования и их эволюция.
На основе изученных данных и при использовании литературных источников и материалов глобальной сети Интернет в работе определены основные характеристики и методологий работы современных языков программирования, рассмотрены классы систем программирования, определены тенденций развития современных языков и систем программирования.