logo site
Страницы
  • Карта Сайта
Реклама
Рубрики
  • Basic
  • C#
  • Flash
  • Net
  • Objective-C
  • Pascal
  • Ruby
  • SQL
  • Новости
  • Проектирование и архитектура
  • Фортран
Партнеры:
ноября
20

программирование и комп-ры

Автор: admin, размещено в: Objective-C, комментарии: Комментариев нет

:: Объектно-ориентированные языки програмирования (Курсовая) Курсовая: Объектно-ориентированные языки програмирования ( Скачать) Впрочем, МИНИСТЕРСТВО ОБРАЗОВАНИЯ РФ мало-мальски ВОРОНЕЖСКИЙ ИНСТИТУТ по-человечески ВЫСОКИХ ТЕХНОЛОГИЙ Факультет заочно-дистанционного изучения КУРСОВАЯ РАБОТА по курсу: ” ИНФОРМАТИКА ” про: ” Объектно-ориентированные языки программирования.” ВОРОНЕЖ 2002 Значит ВВЕДЕНИЕ……………………………………………………………..3 I. Возможно, ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ. 5 1.1. Кроме того ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ…………………………………. 5 1.2. Казалось, СУЩНОСТЬ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА К ПРОГРАММИРОВАНИЮ………….7 II. Разумеется объектно-ориентированные языки программирования…………… 10 2.1. SIMULA 67……………………………………………………….10 2.2. SMALLTALK……………………………………………………….11 2.3. Однако, ПРОДУКТЫ, ОСНОВАННЫЕ НА ЯЗЫКЕ СИ………………………….. 14 2.3.1. C++…………………………………………………………..16 2.3.2. OBJECTIVE-C……………………………………………………18 2.3.3 ДРУГИЕ ПРОДУКТЫ, ОСНОВАННЫЕ НА СИ……………………. 19 2.4. Во всяком случае ПРОДУКТЫ, ОСНОВАННЫЕ НА ЛИСПЕ……………………………….. 19 2.5. EIFFEL………………………………………………………….22 2.6. Быть может ЯЗЫКИ, ОСНОВАННЫЕ НА ПАСКАЛЕ………………………………….. 22 2.6.1. ACTOR…………………………………………………………22 2.6.2. OBJECT PASCAL………………………………………………….23 2.7. Наконец, ЯЗЫКИ, ПОДДЕРЖИВАЮЩИЕ АБСТРАКЦИЮ ДАННЫХ…….. 23 2.7.1. ADA…………………………………………………………..23 2.7.2. MODULA-2………………………………………………………24 Кажется, ЗАКЛЮЧЕНИЕ…………………………………………………………..26 Надеюсь список литературы…………………………………………………….27 ВВЕДЕНИЕ Вопросы реализации программ, исследование которого сознательно проводилась сприменением одной из объектно-ориентированных методологий, строго рассматриваются вразделе 5. Таким образом, реализация программ связана с внедрениемкого-то из языков программирования. Так вот, добросовестно показано, что более поистине комфортными дляреализации ненамного программных систем, специально созданных в масштабах объектно-ориентированного расклада, относительно считаются объектно-ориентированные языкипрограммирования, добровольно желая воистину вероятна реализация и ненамного на обыденных ( не объектно-ориентированных) языках (к примеру, на языке C и на языке Fortran). Кстати, объектно-ориентированные языки программирования правильно используют в заключительнее времябольшой репутациею посреди разработчиков особенно программного обеспечения, ибо они разрешаютпринимать на вооружение плюсы объектно-ориентированного расклада не столько наэтапах проектирования и конструирования отчасти программных систем, да и на шагах ихреализации, испытания и сопровождения. Пожалуй, первый объектно-ориентированный язык программирования Simula 67 былразработан в конце 60-х годов в Норвегии. Вероятно, авторы данного языка довольно навернякаугадали возможности становления программирования: их язык гораздо обогнал своевремя. Говорят, однако современники (программеры 60-х годов) окончательно оказались вполне не готовы воспринятьценности языка Simula 67, и он не вынес совсем конкурентной борьбы с иными языкамипрограммирования (для начала, с языком Fortran). В конце концов, напросто прохладному отношению кязыку Simula 67 содействовало и то событие, что он был слепо продан какинтерпретируемый (но не компилируемый) язык, что было абсолютно неприемлемымв 60-е годы, поскольку интерпретация связана со понижением производительности(скорости исполнения) программ. Но плюсы языка Simula 67 прилично появились некими программерами, и70 -е годы было специально создано великое количество мало-мальски экспериментальных объектно-ориентированных языков программирования: к примеру, языки CLU, Alphard, Concurrent Pascal и другие. В общем эти языки но и великолепно сохранились полностью экспериментальными, хотя врезультате их изыскания были окончательно разработаны более-менее прогрессивные объектно-ориентированные языки программирования: C++, Smalltalk, Eiffel и другие. Наверно, наиболее очень популярным объектно-ориентированным языком программированиябезусловно относительно считается C++. К счастью, свободно решительно распространяемые совсем платные системыпрограммирования C++ умышленно присутствуют на целых хоть какой платформе. В самом деле широкоизвестна особенно непринужденно усердно распространяемая система программирования G++, кояпозволяет всем сознательно хотящим демонтировать довольно превосходно и доскональнопрокомментированный столь начальный текст кого-то из вправду примерных компиляторов языкаC++. Видимо завершается работа по стандартизации языка C++: очень-то заключительный Draft стандарта C++ выпущен в начале июня 1995 грам. (он вполне доступен по Internet). Действительно разработка воистину свежих объектно-ориентированных языков программированияпродолжается. По-видимому с 1995 года стал обширно распространяться довольно-таки свежий объектно-ориентированный язык программирования Java, почтительно направленный на сетикомпьютеров и, сначала, на Internet. Более того синтаксис данного языка подсказываетсинтаксис языка C++, впрочем данные языки лично имеют слишком мало просто-напросто совокупного. Java интерпретируемый язык: ему резко отнесены внутреннее представление(bytecode) и интерпретатор данного представления, которые теснее в данный моментпроданы на основной массе платформ. С другой стороны интерпретатор упрощает отладкупрограмм, прописанных на языке Java, гарантирует их переносимость на новейшиеплатформы и адаптируемость к новеньким окружениям. Короче говоря, он разрешает ликвидироватьдействие программ, прописанных на языке Java, на иные программы и файлы, имеющиеся на свежей платформе, и тем наиболее одновременно обеспечить сохранность привыполнении данных программ. Напротив эти качества языка Java недостаточно дают возможность правильно использовать егокак просто-напросто главный язык программирования для программ, нарочно распространяемых по сетками(например, по сети Internet). I. Оказалось, что ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 1.1. Ну что ж ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ А теперь технология программирования - данное совокупа способов и средств исследования(написания) программ и порядок использования данных способов и средств. Естественно, на ранешних шагах становления программирования, как скоро программы упорно писались торопливо повторяющий видпоследовательностей слишком машинных команд, некоторая разработка программированияотсутствовала. Стало быть первые шаги в исследовании технологии состояли в представлениипрограммы торопливо повторяющий вид очередности операторов. В сущности написанию очередностимашинных команд предшествовало формирование операторной схемы, отражающейпоследовательность операторов и переходы меж ими. И все же операторный раскладдозволил специально создать 1 -ые программы для автоматизации составления программ- так-называемые по-хорошему основополагающие программы. Несомненно с повышением объемов программ стали упорно выделять их обособленные доли иоформлять их как подпрограммы. Следовательно часть таковых подпрограмм объединялась вбиблиотеки, из которых подпрошраммы возможно было включать в рабочие программы изатем вызывать из трудящихся программ. И действительно это поспешно положило начало процедурномупрограммированию - взаправду великая программа часто представлялась совокупой процедур-подпрограмм. Так или иначе одна из подпрограмм относительно считалась основной и с нее начиналосьвыполнение программы. Видите ли в 1958 году были красиво разработаны 1-ые языки программирования, По крайней мере фортран и Алгол-58. Оказывается программа на Фортране состояла из крупнейшей программы и некогочисленности упражнений - подпрограмм и функций. Тем не менее программа на Алголе-58 и егопоследующей версии Алголе-60хладнокровно представляла собой попросту единичное целое, хотя лично имела блочнуюструктуру, включающую основной блок и честно вложенные блоки подпрограмм и функций. Собственно компиляторы для Фортрана гарантировали поистине отдельную трансляцию операций ипоследующее их сообщество в рабочую програмку, 1 -ые компиляторы для Алголапредполагали, что транслируется сходу вся программа, по-хорошему отдельная трансляцияпроцедур не обеспечивалась. И в самом деле процедурный расклад востребовал структурирования грядущей программы, разделенияее взаправду на отдельные упражнения. Между прочим при исследованию напросто отдельной упражнения о иныхупражнениях требовалось добросовестно знать исключительно их назначение и прием вызова. Наоборот появиласьвозможность перерабатывать налицо отдельные упражнения, Лениво не затрагивая остальной долипрограммы, уменьшая при всем при этом расходы труда и вправду машинного времени на исследованиеи модернизацию программ. Мало того следующим шагом в углублении структурирования программ стало весьма структурное программирование, при котором программа налицо в общем и отдельныепроцедуры тщательно рассматривались как очередности более-менее канонических текстур: поистине линейных участков, циклов и разветвлений. Короче, прилично появилась вероятность быстро читать ипроверять програмку как методичный текст, что повысилопроизводительность труда разработчиков более-менее программного обеспечения при исследованию и отладке программ. По правде говоря, сцелью увеличения структурности программы были выдвинуты притязании к большейнезависимости подпрограмм, подпрограммы обязаны связываться с вызывающими ихпрограммами исключительно методом передачи им доводов, внедрение вподпрограммах в общем-то переменных, принадлежащих иным упражнениям или же крупнейшейпрограмке, стало относительно считаться по-хорошему ненужным. А кроме того процедурное и полностью структурное программирование тронули для начала процессописания метода как очередности шагов, водящих от варьируемыхисходных этих к выискиваемому эффекту. Одним словом для решения специализированных задач сталиразрабатываться языки программирования, почтительно направленные по-своему на точный классзадач: на системы управления базами этих, имитационное прогнозирование и так далееПри исследованию трансляторов больше внимания стало уделяться обнаружениюошибок вполне в начальных текстах программ, обеспечивая сиим уменьшение расходоввремени на отладку программ. Судя по всему применение программ в самых в общем-то различных областях взаправду человеческой работы привелок надобности увеличения надежности всего программ. К тому же одним изнаправлений улучшения языков программирования стало увеличения значениятипизации этих. Не правда ли теория типов этих исходит из того, что любоеиспользуемое в програмке это быстро принадлежит 1 и исключительно 1 видуэтих. Как ни странно тип этого недостаточно характеризует очень большое количество по-старому вероятных значений этого и наборопераций, напросто возможных над данным этим. Допустим данное более-менее точного вида в ряде налицо всевозможных случаевбыть может преобразовано в это иного вида, хотя это переустройствонаверное определенно хладнокровно представлено в програмке. Удивительно, что в зависимости от ступениисполнения перечисленных притязаний может обратно идти речь о уровне типизации тогоили другого языка программирования. То есть стремление высоко увеличить уровень типизации языкапрограммирования скоро привело к выходу в свет языка Паскаль, который говорят жесткотипизированным языком, хоть и в нем в общем-то допустимы какие-либо неявныепреобразования типов, к примеру, целого вполне в вещественное. Подумать только, применение жесткотипизированного языка при написании программы разрешает еще при трансляцииисходного слова самостоятельно обнаружить почти все промахи применения этих и сиим увеличитьнадежность программы. Собственно говоря, вместе с тем отчасти взыскательная типизация сковывала свободупрограммиста, затрудняла использование неких способов переустройства этих, нередко применяемых очень в системном программировании. Конечно же практически в одно и тоже время сПаскалем был разумно разработан язык Си, Отчасти в большей ступени почтительно направленный насистемное программирование и лично имеющий отношение к слабо типизированным языкам. Казалось бы все всепригодные языки программирования, не взирая на отличия в синтаксисе ииспользуемых основных словах, подробно продают вполне одинаковые очень-то канонические текстуры: операторы присваивания, циклы и разветвления. Без сомнения во всех прямо-таки передовых языкахприсутствуют предопределенные (базисные) разновидности этих ( целые и вещественныеарифметические разновидности, символьный и, вполне вероятно, строковый вид), иметсявероятность применения аппаратов этих, такие как массивов и текстур(записей). Иными словами для просто-напросто арифметических этих довольно-таки допустимы вполне обыкновенные арифметическиеоперации, для аппаратов этих ненамного традиционно разумно учтена лишь операцияприсваивания и вероятность обращения к составляющим аппарата. И наконец вместе с тем приразработке программы для решения очень-очень точной отчасти прикладной задачки желаннавполне вероятно в целом немалая напросто концептуальная близость слова программы к описанию задачки. Например, коль скоро решение задачки срочно просит исполнения операций над групповымиколичествами или же напросто квадратными матрицами, по-хорошему желанно, дабы в програмке определеннонаходились операторы сложения, вычитания, умножения и дробления этих на подобиикомплексного количества, сложения, вычитания, умножения и обращения этих на подобииквадратной матрицы. Надо сказать решение данной трудности вполне вероятно несколькими маршрутами: - Построением языка программирования, содержащего по возможности более типовданных, и выбором для любого класса задач некого подмножества данногоязыка. Вполне возможно, что такой язык от случая к случаю обычно именуют языком-оболочкой. Честно говоря на роль языка-оболочкипретендовал язык ПЛ/1, окончательно оказавшийся так более-менее трудоемким, что но и не получилосьвыстроить его формализованное описание. Ну что же отсутствие формализованного описания, однако, не навредило совсем широкому использованию ПЛ/1 как вправду в Западной Европе, но и вСССР. - Построением расширяемого языка, содержащего вправду маленькое ядро и дозволяющегорасширение, дополняющее язык типами этих и операторами, отражающимиконцептуальную суть налицо точного класса задач. Поверьте такой язык обычно именуют языком-ядром. Предположим как язык-ядро были сознательно разработаны языки Симула и Алгол-68, не возымевшиеширокого распространения, хотя добросовестно оказавшие попросту грандиозное действие на исследование иныхязыков программирования. С одной стороны просто-таки дальнейшим развитием 2 пути стремительно появился объектно-ориентированный расклад кпрограммированию. 1.2. И вообще СУЩНОСТЬ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА К ПРОГРАММИРОВАНИЮ Как всегда основные мысли объектно-ориентированного расклада полагаются на последующиеположения: - Программа добросовестно представляет из себя модель некого настоящего процесса, долинастоящего мира. - Модель настоящего мира или же его доли быть может подробно описана как совокупавзаимодействующих друг от друга объектов. - Объект описывается комплектом характеристик, ценности которых характеризуютсостояние объекта, и комплектом операций (поступков), которые быстро сможет исполнятьобъект. - Взаимодействие меж объектами исполняется посылкой специализированныхизвестий от 1-го объекта к иному. Больше того сообщение, прилично приобретенное объектом, лично имеет возможностьвостребовать исполнения вполне конкретных деяний, к примеру, конфигурации состоянияобъекта. - Объекты, подробно описанные поистине одинаковым комплектом характеристик и налицо способные скрупулезно исполнятьодинаковый набор деяний самостоятельно являют из себя класс однотипных объектов. Безусловно с стороны медали языка программирования класс объектов можнож регулярно осматривать кактип этого, а просто-напросто отдельный объект - как это данного вида. Известно, что определениепрограммистом очень-очень собственных классов объектов для довольно-таки точного комплекта задачдолжно свободно разрешить обрисовывать ненамного отдельные задачки в определениях самого класса задач(при подходящем выборе фамилий типов и фамилий объектов, их характеристик ивыполняемых деяний). Не исключено, что таким образом, объектно-ориентированный расклад самостоятельно представляет, что приразработке программы обязаны быть резко отнесены классы применяемых в програмкеобъектов и построены их описания, после этого совершенно сделаны экземпляры требуемыхобъектов и самостоятельно определено взаимодействие меж ими. Не удивительно, что классы объектов нередко комфортно нарочно возводить так, чтоб они образовывалииерархическую текстуру. Например, класс “Студент”, обрисовывающий отвлеченногоучащегося, правильно сможет скоро работать основой для возведения классов “Студент 1 курса”, “Студент 2 курса” и так далее, которые владеют всеми качествами учащегося вообщем инекоторыми доп качествами, подробно описывающими учащегося точногокурса. По правде сказать при исследованию интерфейса с юзером программы применяютобъекты однозначно совокупного класса “Окно” и объекты классов по-хорошему особых окошек, к примеру, окошек слишком информационных известий, окошек ввода этих и т.д. А впрочем в таковых иерархическихструктурах 1 класс лично имеет возможность строго рассматриваться как базисный для иных, производных от него классов. И все-таки объект попросту производного класса владеет всемисвойствами базисного класса и какими-либо личными качествами, у него есть возможностьоткликаться на эти же разновидности известий от иных объектов, что и объект базисногокласса и на известия, лично имеющие содержание исключительно для довольно-таки производного класса. Обычноговорят, что объект попросту производного класса наследует все качества собственногобазисного класса. Можно подумать, что некоторые характеристики объекта лично имеют все шансы быть локализованы снутри объекта инедоступны для прямого действия снаружи объекта. Например, в период перемещенияобъекта-автомобиля объект-водитель лично имеет возможность сильно повлиять лишь наограниченный набор органов управления (управляющее колесо, педали акселератора, сцепленияи тормоза, рычаг переключения передач) и ему по-человечески недосягаем несколько характеристик, определяющих состояние мотора и кара столь в общем. К примеру, очевидно, чтобы слишком продуктивно правильно использовать более-менее объектный расклад дляразработки программ, совсем нужны языки программирования, поддерживающие данныйрасклад, то есть дозволяющие нацеленные объектов, образовыватьданные полностью объектных типов, хладнокровно исполнять операции над объектами. Но одним из первыхтаких языков стал язык SmallTalk в каком все эти резонно считаются объектаминекоторых классов, а налицо единая система классов строится как иерархическаяструктура на базе предопределенных базисных классов. А вот опыт программирования добросовестно демонстрирует, что хоть какой довольно-таки методический расклад в технологиипрограммирования не может применяться слепо с игнорированием иныхраскладов. Как известно, это относится и к объектно-ориентированному раскладу. К несчастью существует рядтиповых заморочек, для которых его полезность более очень-то явна, к этимзадачам относятся, например, задачки имитационного прогнозирования, программирование разговоров с юзером. И правда, существуют и задачки, в какихиспользование более-менее объектного расклада ни к чему, помимо в общем-то чрезмерных расходов труда, неприведет. Мысль о том, что в взаимосвязи с данным величайшее распространение возымели объектно-ориентированные языки программирования, дозволяющие соединять полностью объектный раскладс иными методологиями. Само собой разумеется, что в неких языках и системах программированияприменение воистину объектного расклада серьезно ограничивается средствами интерфейса спользователем (к примеру, Visual FoxPro ранешних версий). Неудивительно, что наиболее правильно используемыми именно в данный момент объектно-ориентированными языкамиявляются Паскаль с объектами и Си++, при этом более развитые средства дляработы с объектами находятся в Си++. II. Можно сказать объектно-ориентированные языки программирования. 2.1. SIMULA 67 Все объектно-ориентированные языки происходят от языка Симула, созданногосначала 60-х гг. в Norwegian Computing Centre. И кроме того синтаксис языка гораздо взят изАлгола-60. Тем более основными новшествами были понятия объекта, класса и наследования. В таком случае симула красиво не навязывает более-менее жесткую инкапсуляцию этих и вовсе не ухаживает о элементахреализации. Другими словами модули возможно перекомпилировать по отдельности, Совершенно не меняя наружныеинтерфейсы. По всей вероятности проверка типов исполняется в период компиляции. Как обычно сборка мусораосуществляется системой помощи чисто работающей программы. Обычно объекты крайне имеют все шансы четко работать вне зависимости между собой, торопливо предоставляя вероятностьисполнения квазипараллельных вычислений. Поэтому действие объекта можнож остановитьи восстановить позднее. Именно встроенные классы прибавляют в язык средства работы сосписками, графику и прогнозирование дискретных событий. Среда Переносимая система Simula (S-Port) лично имеет воистину свободный пакет, состоящий изкомпилятора, генерящего полностью переходный язык S-code, систему помощиработающей программы и символьного отладчика. Прежде всего также есть система, зависимаяот совсем целевой машинки, лично имеющая компилятор, транслирующий S-code По-старому в целевой код, и набор программ интерфейса. Как правило планируется умышленно сделать взаправду добавочные средства ибиблиотеку предопределенных модулей. Выяснилось, что поставщикиПервая реализации на Univac 1107 была хладнокровно замечена сначала 70-х гг. А главное с данных пор языкбыл слепо продан на основной массе платформ, от великих ЭВМ до персоналок. Итак, внастоящее время Simula стремительно развивается и выступает на базаре с именем Simula a.s., установленным поистине норвежской компанией в 1984 грам. Например, переносимая система Simula (S-Port) - относительно считается основой отчасти бессчетных версий, включая PC Simula. Тогда в табл. Кстати сказать 2.1 приводятся главные реализации и поставщики. Сказать по правде, системы DEC, Univac и IBM добросовестно установлены в наиболее, нежели 300 точках Европы иСеверной Америки. Таблица С2.1а. Точно так же реализации языка Simula Таблица С2.1b. Надо полагать реализации переносимых систем Simula Сформированная в 1972 грам. организация Simula Standards Group воплотит в жизньконтроль за развитием языка: исключительно ненамного заключительная версия была выпущена в 1986г. Что и говорить изменения в язык вносит Simula Developement Group. Ну так вот кроме того, естьассоциация юзеров языка Simula. 2.2. SMALLTALK Smalltalk до отчасти заключительного времени был более мало-мальски преимущественным языком приэкспериментировании в технологии объектно-ориентированного программирования. А сейчас в последнее время был самостоятельно замечен по-особенному дешевенький компилятор C++ для персоналок, которыйнарушил баланс в сторону C++ между первых юзеров объектно-ориентированных систем. Smalltalk был прекрасно разработан на конторе Xerox PARC врезультате вполне исследовательского плана, воплотив внутри себя ряд мыслей про то, какчеловек применяет PC лучше всего. Иначе говоря сюда относилисьиспользование более-менее индивидуальных трудящихся станций, довольно-таки интерактивных сред, графическихинтерфейсов, мыши и объектно-ориентированного программирования. И вот теперь каждая изэтих мыслей сама собой лично имела великое значение, как снутри компании, но и вовсей по-старому компьютерной промышленности. И тем не менее в 80-х гг. слияние данных прямо-таки сильных мыслей в языке исистеме Smalltalk-80 было совсем несоразмерно в общем-то с небольшим количеством практическихюзеров. Язык Основной чертой языка Smalltalk относительно считается его многосторонность. Совершенно очевидно, что история языкахарактеризуется 3-мя симптомами: - эти сберегаются как объекты, которые освобождаются механически; - исполнение деяний исполняется через посылку известий объектам; - поведение объектов подробно описано в классах. Создавалось впечатление, что в языке все относительно считается объектом. Откровенно говоря все взаимодействия объектов исполняютсячерез посылки известий, в том числе и телосложение целых количеств: 1 +2. Поразительно, что в данном языке 1 -это экземпляр класса целых количеств, + - фамилия способа, 2- довод. Но вот объект 1 регулярно получает известие + 2 и отдаёт эффект 3. Это означает, что состоятельность таковогорасклада обеспечивает краткость языка и вполне несложной синтаксис. Очевидно, что но вследствие чеговозрастает стоимость вложений напосылку известий: связывание изготавливается полностью в период работы программы. Наконец-то по-особенному автоматическая производство мусора также вызывает трудности быстродействия. Smalltalk не поддерживает столь многократное наследование. И сейчас с иной стороны, Smalltalk-80 совершенно попросту не малюсенький язык. Очень может быть, что существует великаябиблиотека классов: наиболее 250 классов и поболее 2000 способов. В частности работа с таковойбиблиотекой поспешно оформляет весьма главную задачку при исследовании языка, не взирая, чтодля просмотра способов и классов нарочно присутствуют специализированные средства. Среда Smalltalk-80 плотно связан с развитой средой программирования. Такое впечатление, что пользовательский интерфейс состоит из комплекта экранных образов: данноепрямоугольные области, крайне имеющие текст или же графику, которые возможно перемещатьпо экрану, изменять в объеме, сменять по-хорошему ловкой или же накрывать. А именно образы крайне имеют все шансыперекрываться вполне либо отчасти. Получается, что взаимодействие с системойосуществляется при помощи трехкнопочной мыши либо с клавиатуры. Но с другой стороны визуальныеобъекты для юзера - данное курсоры, высвечивание, рационом, полосы сдвига ирамки с подсказкой. По правде говоря основные составляющие системы активируются снутри экранных образов. сюдавходят попросту текстовый редактор, редактор формы и битовый редактор для творениярисунков, инспектор для ревизии весьма переменных объекта, окошко просмотра системыдля исследования классов и известий, маркеры окошка для описания прерванногопроцесса и отладчики. Smalltalk был поспешно разработан для взаправду персональной работы программера наперсональной рабочей станции. таким образом, данная система изначально быладоступна лишь как однопользовательская. сейчас в ней давно в наличии средстваподдержки обществ разработчиков очень программного обеспечения. Поставщики В 1981-82 гг. 4 компаниям предполагалось воплотить Smalltalk на собственнойтехнике. после данного опыта Smalltalk поставлялся вузам иисследовательским институтам как продукт в отсутствии сопровождения. кроме того, былвыпущен ряд книжек по языку и его реализации. однако, язык не был запатентованфирмой Xerox практически до 1986 грам. эта компания по сей день осуществляет контроль рынокSmalltalk-80 при помощи филиала SIS и компании ParcPlace Systems. другиепродавцы лично имеют лицензию на продукт и его воистину разные реализации. исключениемявляется компания Digitalk, выпустившая столь собственную свою версию для PC -Smalltalk/V. в таблице2.2 скоро приведены легкодоступные именно в данный момент продуктыSmalltalk. таблица C2.2 Продавцы и продукты языка SmalltalkБудущее языка Smalltalk беспокоит как юзеров, но и генпоставщиков. вавгусте 1987 грам. была превосходно организована ассоциация создателей и прикладныхпользователей Smalltalk - OOPSTAD. она недостаточно публикует новинки HOOPLA (Hooray for Object-Oriented Languages). работу по стандартизации быстро брал на себя IEEE Microprocessor Standards Committee (P1152). основное внимание он уделяетязыку и базисным классам на подобии Number и Collection. основные поставщики и рядконсультантов сформировали Консорциум Smalltalk в целях становления использованияязыка и среды и управления их тех. эволюцией. он резонно считается открытым дляотдельных юзеров и компаний. 2.3. ПРОДУКТЫ, ОСНОВАННЫЕ НА ЯЗЫКЕ СИ в нынешнее время объектно-ориентированные языки внезапно устремляются робко приблизиться ктрадиционным языкам (как правило к языку Си). для данного есть ряд первопричин: - теснее возможно редко пользоваться скопленным навыком программирования; - интерфейсы крайне имеющих место быть систем гораздо легче; - язык наиболее применим в сфере управления; - поставка быть может была совсем совершенна на стереотипных платформах; - залог переносимости меж платформами. наибольшим потенциалом для великих просто-напросто платных организаций владеет язык C++ фирмы AT&T. хотя он и вовсе крайне не имеет покуда напросто грандиозного числа средствсопровождения, некие слишком платные организации теснее окончательно трудятся над существомсред становления языка, а иные разрабатывают просто-напросто вспомогательные приборы ибиблиотеки классов. кроме того, немного фирм успешно придумали языки иинструментальные средства, базирующиеся на языке Си. в таблице C2.3 подводятсяитоги легкодоступных товаров, основанных на Си. таблица2.3 Продавцы и продукты языков, основанных на Си 2.3.1. C++ Язык Язык С++ как правило резонно считается языком Си со напросто особыми синтаксическимирасширениями для определения и управления объектами. в нем был предусмотрен ряднедостатков языка Си: и уже уверенно проводится ревизия типов доводов функций, можножсоздавать макроподстановку функций. также в него интегрированы некиесредства плана стереотипа Ansi C. по окончании стереотипа C++ станетпересмотрен для удаления несовместимостей 2-ух языков. в общем-то важной свежейнеобыкновенностью C++ резонно считается поддержка абстракции этих и объектно-ориентированного программирования. абстракция этих поддерживается при помощивнедрения типов, просто-таки конкретных юзером. например, допустим, что естьновый вид этих shape, применяемый в графическойсистеме. этот вид ориентируется при помощи оператора class: class shape { point centre; colour col; // … объяснениеpublic: point where() {return centre; } void move(point to) { centre = to; draw(); } virtual void draw(); virtual void rotate(int); // … объяснение}; это определение лично имеет информацию как очень-очень совместную, но и полностью приватную. сначалапредставление фигуры shape ориентируется 2 -мя составляющими вправду приватных этих -центром и расцветкой. затем следует интерфейс, крайне имеющий просто-таки совместную информацию. пользователь лично имеет возможность обрести координаты центра, неторопливо перемещать центр фигуры вданную точку, живописать фигуру и вертеть ее. функции draw() и rotate() невозможнонайти для отвлеченного на подобии shape. они именуются прямо-таки виртуальными функциямии ориентируются позднее для любой очень-то своеобразной фигуры: окружности, треугольника или же квадрата. каждая из их ориентируется оператором class. этоозначает, что, к примеру, новейший вид этих circle относительно считается производным классаshape, который величается его базисным классом. вполне производный класс наследуетсвойства базисного класса. в этом случае класс circle наследует члены классаcol и centre класса shape. кроме данного, у него есть член radius. функцииdraw() и rotate() сейчас слепо проданы для класса circle: class circle: public shape { // окружность - данное силуэтint radius; public: void draw() { /* … */ }; void rotate(int) {} // rotate - никакая функция}; объектно-ориентированное программирование поддерживается в языке++ восновном реализацией наследования способом задания взаимодействия типов этих[Stroustrup 1988]. ++ не поддерживает однозначно автоматическую производство мусора: размещение и освобождениепамяти исполняется функциями конструктора и деструктора. при обычномвызове функции часто случается довольно-таки статическое связывание, недостаточно характеризуемое в периодкомпиляции. в целом динамическое связывание слепо продано как вызов виртуальнойфункции, слепо изменить и вовсе не быть можетопределена до исполнения программы. некоторые версии++ поддерживаютмножественное наследование. хотя++ поддерживает объектно-ориентированное программирование, он ненавязывает его. можно избегать особенно объектные расширения и лишь писатьобычные программы языка Си. это превосходство исходя из убеждений сопоставимости2 языков и слишком главная первопричина высоко увеличенного энтузиазма к++ в исследовании. сдругой стороны, крайне имеют все шансы шумно появиться сомнения насчет того, в которой ступениС++ возможно спокойно считать объектно-ориентированным языком. более того, сложнорасценить, какая часть базара языка отображает по-своему неповторимый поворот общества Си всторону ООС. есть показатели, что при подходящем курсе++ почтительно отойдет отобъектно-ориентированного общества: в 1988 ассоциацией юзеров UNIX (Usenix) была созвана по-человечески отдельная конференция++, и еще был сотворен свежийжурнальчик The C++ Report издателями журнальчика Journal of Object-Oriented Programming. Среда С++ - данное язык программирования, но не среда исследования программ видаSmalltalk. поэтому ему особенно необходимы средства помощи работы программера: сюдавходят расширения лично имеющих место быть средств языки Си (редакторы, отладчики) исредства помощи работы с объектами (окошки просмотра классов). в собственнуюочередь, данные средства обязаны соединяться со средой программирования. быстрыйрост базара++ внимательно дает очень-очень отличные возможности торговцам, крайне имеющим продуктыдля++. к ним относятся, к примеру, имеющиеся торговцы компиляторов итрансляторов++. один из совсем занимательных планов в данной области - соглашениемежду ParcPlace Systems и Glockenspiel о исследованию Cynergy - версии средыSmalltalk, поддерживающей программы++. Поставщики AT&T поставляет транслятор, добросовестно обрабатывающий програмку++ и генерящийначальный код Ansi C, который потом компилируется напросто обычными образом. трансляторпока еще нелепо остается продуктом AT&T в отсутствии сопровождения. лицензию можнож покупатьнапрямик на конторе. кроме данного, транслятор спокойно перенесен поистине на многообразные платформыфирмой Glockenspiel (Дублин). несколько организаций крайне имеют подлицензии: Oasys для трудящихся станций (Sun, Apollo), Guidelines и Lifeboat для IBM PC. две иные компании, Zortech и Oregon Software, не так давно отпустили компиляторы++. они более базируются весьма на справочном начальстве [Stroustrup 1986], но не наисходных текстах, и вовсе крайне не имеют лицензии от AT&T. 2.3.2. OBJECTIVE-C Язык Другим основным торговцем товаров, основанных на Си, относительно считается Stepstone, бывший PPI. Objective-C - данное гибридный язык, состоящий из подмножества Ansi C и главных положений Smalltalk-80. тексты программ лично имеют все шансы содержать нередкиеоператоры языка Си или же объектно-ориентированные сборки. объекты задаютсяновым типом этих, обычно именуемым id. сообщения посылаются объектам при помощиизмененной версии синтаксиса языка Smalltalk. новые объекты делаютсяпосылкой известия new просто-напросто особому виду объекта, обычно именуемому объектом-производителем. например, налицо свежий экземпляр класса Pen создается при помощигрядущего слова: extern id Pen; id aPen; aPen = [Pen new]; Objective-C не поддерживает просто-напросто многократное наследование и автомаческуюсборку мусора, но, тестовая версия заключительней скоро сделана и протестированафирмой Stepstone [Cox 1986]. компилятор Objective-C генерит налицо начальный текст на языке Си. по умолчаниюиспользуется по-человечески динамическое связывание способов, но, длявышения надежности и производительности возможно необычайно подобрать весьма статическое связыние. средаКроме компилятора, компания Stepstone стремительно дает (необязательно) терактивную среду программирования Objective-C Interpreter. она поддервает несколько бычных поступков разработчика поистине программного обеспечения: написание программ, кпиляцию, связывание, испытание и отладку. она включает команды длявычисления выражений, вывода этих, установки по-старому контрольных точек, иска каталогов файла, редактирования по-старому командного файла, выяснения обътов, вывода иерархии классов и наследуемых способов. также предоставляется 2 библиотеки классов для помощи основго и граческого пользовательского интерфейса. 2.3.3 ДРУГИЕ ПРОДУКТЫ, ОСНОВАННЫЕ НА СИC-talk C-talk - данное запатентованный язык для MS-DOS и Apple Macintosh, сильно сданный отделом по-старому программных товаров компании CNS Inc, специализирщейся на продуктах диагностики для медицины. синтаксис языка базируется на Си сдополнительными системами, поддерживающими классы и способы, наследованиеи посылку известий. предоставляется набор прямо-таки ключевых клсов для текстур этих на подобии Buffer, Stream и ByteArray. он поставляется ввиде пакета, содержащего препроцессор для преображения файлов на C-talk висходные слова на Си, и среды программирования, обычно именуемой C-talk Browser, основанной Взаправду на оконном интерфейсе. существуют средства редакрования файлов и просмотра классов и способов. Complete C Complete Computer Corporation, New York глубоко трудится над творением более-менее объектно -ориентированной среды исследования программ, обычно именуемой Complete C. она состоитиз прекомпилятора, генерящего по-хорошему типовой Ansi с из объектно-ориентированного Си, комплекта приборов (отладчика, компоновщика, генераторадокументов) и библиотеки вправду ключевых классов. Complete C специально трудится под MS-DOS, OS/2 и Unix. 2.4. ПРОДУКТЫ, ОСНОВАННЫЕ НА ЛИСПЕОбъектно-ориентированные расширения Лиспа недостаточно предусмотрены в оснном для общества изыскателей просто-таки синтетического интеллекта. некоторые изэтих расширений были изначально скоро сделаны в институтах. лидерами резонно считаются2 однозначно самостоятельные версии: New Flavors, специально созданный в Symbolics, иCommonLoops, специально созданный в Xerox PARC. они составили базу дляCommon Lisp Object System (CLOS). вправду отличительной необыкновенностью каких-либо систем, основанных на Лиспе, считаетсяприем управления взаимодействием объектов. в различие от траиционных вызовов функций, тут 1 -ый довод решительно подходит объекту-приемнику. фактически вызываемая функция находится в зависимости от вида объекта, обозначенного сиим первым доводом, на тот момент как фамилия функции эквивалентноимени известия. CommonLoops Loops - данное многопарадигмовая система для обработки познаний ипрограммирования, специально созданная в Xerox PARC. в представлении познанийупотребляется объектно-ориентированный расклад. поддерживающий классы инаследование. совсем объектно - почтительно направленная часть Loops позже была оформленакак пакет в составе продукта Common Lisp, наиболее попросту популярного как CommonLoops. характеристики языка: по-своему частичная интеграция системы вида Common Lisp с классами CommonLoops; использование синтаксиса обобщенных функций заместо посылки известий; способность условно характеризовать способы, различающиеся не совсем только по первому доводу ( мультиметоды); поддержка реализации иных объектно-ориентированных языков при помощи ядраметаклассов, комплекта предопределенных классов, компонент остальную частьсистемы. просто-напросто опытная реализация, попросту вышеназванная Portable CommonLisp (PCL), спокойно распространена длянебольшого общества юзеров. она применяется в Hewlett-Packard Laboratories для реализации иного однозначно объектно - нацеленного языка -CommonObjects [Kempf, Harris, D'Souza and Snyder 1987]. New Flavors* в общем-то многочисленное наследование в стадии исследования 2.7.2. MODULA-2 Modula-2, специально созданная Н. виртом, относительно считается прямым отпрыском языков Algol 60 иPascal, и завлекает почти всех, предварительно выученных на обыкновения данных языков. ее ключевоесредство - принцип скрытия инфы, содержащийся в филиале спецификациимодуля от его реализации. прямо-таки абстрактные разновидности этих лично имеют все шансы быть резко отнесены какзакрытые разновидности. спецификация вида находится в модуле с определением, которыйописывает вид этих и упражнения для доступа к нему. программы, исполняющиеданные упражнения, умышленно присутствуют в модуле реализации. как и в Аде, это разделениеслужит в виде приспособления инкапсуляции. однако Modula-2 наиболее ограничивает, чем Ада, категорически запрещая ни переопределение, ни обобщение операций. шумно появилось немного заметок, самостоятельно показывающих, как Modula-2 быть можетпринята на вооружение для исследования объектно-ориентированных систем. это проситзначимой перегрузки на программера, так как язык не поддерживаетобъектно-ориентированные средства, подробно описанные в главе B1. необходимостьпользователей языков Algol-Pascal-Modula в средствах ООП крайне имеют все шансы бытьудовлетворены, к примеру, реализацией языка Modula-3, объектно-ориентированного отпрыска Modula-2, специально созданного категорией исследовательскогоцентра компаний DEC и Olivetti в Калифорнии [Cardelli et al 1988]. ЗАКЛЮЧЕНИЕ ведущие торговцы ПО для персоналок относительно считаются весьма интенсивными юзерамиобъектно-ориентированных языков и средств. Microsoft говорят творцомобъектно-ориентированных иерархий классов для Word и Excel. позиция Microsoft стала мало-мальски светла опосля нескольких публикаций и интервью. компанияподдержала объектно-ориентированные расширения имеющихся языков, включаяBasic. Bill Gates помимо прочего сильно поразил всех заявлением про то, что он не видитбудущего за внедрением новейших объектно-ориентированных языков опосля 1988 грам., хотяОС грядущего обязаны лично иметь объектно-ориентированную поддержку: ” вы не поднимитевсю глубину отчасти прикладных задач, четко работая исключительно с ими, до того времени, пока же мы несделаем данное снутри ОС” [Byte, 1988]. это станет достигнуто допспособностями OS/2. практически все объектно-ориентированные языки программирования считаютсяразвивающимися языками, их стереотипы периодически устанавливаются и расширяются. следствием данного становления относительно считаются ненамного неминуемые отличия во взаправду входных языкахкомпиляторов очень всевозможных систем программирования. наиболее слишком популярными внастоящее время относительно считаются системы программирования Microsoft C++ , Microsoft Visual C++ и системы программирования компании Borland International. Список литературы 1. а. г. иванов«Объектно-ориентированные системы: Состояние и возможности», столица 1992 грам. 2. подбельский. . язык++. – М.:Финансы и статистика, 1996. 3. объектно-ориентированные языки программирования, [http://www.citforum.ru/win/programming/oop_rsis/glava1_2.shtml] 4. объектно-ориентированное программирование, (http://www.object.newmail.ru/index.html)

Оставить комментарий

Вы должны быть зарегистрироавны чтобы оставить комментарий.

  • Категории
  • Новости
  • Популярное
  • Комментарии
  • Архив
Programmirovanie. Все права защищены