Файл: «Современные языки программирования»( Поколения языков программирования).pdf

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

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

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

Добавлен: 18.06.2023

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

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

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

2.3 Современной системе программирования на языке C#

Несмотря на то, что объектно-ориентированные языки применяются с 50-х годов прошлого века, за последние десятилетия мы являемся очевид­цами безудержного повышения их применения в потреблении программ­ного обеспечения. Изначально языки не пользовались столь высокой попо- лярностью, но успех таких языков, как Java, C++ и С# притянули интерес к объектно-ориентированным технологиям. И это не просто так. После мно­голетней и столь тяжелой борьбы с установившимися нормами, объектно- ориентированное программирование (ООП) в своем развитии достиглос- воего расцвета и люди смогли разглядеть допустимые потенциалы этой технологии. На сегодняшний день во многих компаниях его использование обязательно. И без преувеличения можно сказать, что в результате сделаны верные выводы.

Если необходимо разобраться в состоянии ООП, то необходимо знать какие-то азы из истории программирования. ООП естественно не было ос­новано за несколько дней. Появление этого программирования является частичкой в эволюции программного обеспечения. Постепенно появилась возможность установить, какие методы логичны для работы, а какие нет. ООП действенно соединяет в себе наиболее удачные, испытанные време­нем методы.

Буквы ОО в ООП обозначают «Объектно-ориентированный подход». Данный подход подразумевает в себе все стилевые прогрессы, опираю­щиеся на понятии «объект» — понятии, которые многие люди называют «вещь». Каждый объект характеризуется собственными свойствами и по­ведением [1]. Объектно-ориентированный подход, возможно, использовать в программировании, анализе и даже в дизайне. Можно сказать, что объ­ектно-ориентированный подход - это способ думать, а также способность воспринимать окружающий мир с точки зрения теории объектов. Иначе, объектно-ориентированный подход подразумевает то, что можно описать в терминах теории объектов.

ООП занимает следующую логическую ступень после модульного программирования. ООП добавляет к модулю как наследование так и полиморфизм.

Если представить, что при помощи объектно-ориентированного подхода разработано приложение моделирования в реальном масштабе времени торгового терминала или тележки для магазина самообслуживания [2]. Данное приложение, разработанное по методологии ООП, будет включать следующие объекты:


  1. item (товар),
  2. shopping cart (тележка для магазинов самообслуживания),
  3. coupon (купон),
  4. 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, dis­count, 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]:

  1. естественность;
  2. надежность;
  3. возможность повторного использования;
  4. удобство в сопровождении;
  5. способность совершенствоваться;
  6. удобство периодического выпуска (издания) новых версий.

ЗАКЛЮЧЕНИЕ

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

Язык программирования может быть представлен в виде набора спецификаций, определяющих его синтаксис и семантику. Для многих широко распространённых языков программирования созданы международные стандарты. Специальные организации проводят регулярное обновление и публикацию спецификаций и формальных определений соответствующего языка.

В рамках таких комитетов продолжается разработка и модернизация языков программирования и решаются вопросы о расширении или поддержке уже существующих и новых языковых конструкций.

В представленной работе проведено исследование основных положений, связанных с языками и системами программирования, рассмотрены основные классификации языков программирования и их эволюция.

На основе изученных данных и при использовании литературных источников и материалов глобальной сети Интернет в работе определены основные характеристики и методологий работы современных языков программирования, рассмотрены классы систем программирования, определены тенденций развития современных языков и систем программирования.