Реферат: Эволюция языков программирования

Идея ООП заключается в стремлении связать данные с обрабатывающими эти данные процедурами в единое целое - объект. ООП основано на трех важнейших принципах, придающих объектам новые свойства. Этими принципами являются инкапсуляция, наследование и полиморфизм.

· Инкапсуляция - объединение в единое целое данных и алгоритмов обработки этих данных. В рамках ООП данные называются полями объекта, а алгоритмы - объектными методами.

· Наследование - свойство объектов порождать своих потомков. Объект - потомок автоматически наследует от родителей все поля и методы, может дополнять объекты новыми полями и заменять (перекрывать) методы родителя или дополнять их.

· Полиморфизм - свойство родственных объектов (т.е. объектов, имеющих одного общего родителя) решать схожие по смыслу проблемы разными способами.

4. CASE - системы.

Представление о CASE - комплексах связано в нашем сознании с чем - то, не имеющим отношения к обычному программированию.

В Америке из - за сильнейшнй конкуренции CASE - средства используются подавляющим большинством фирм - разработчиков программного обеспечения. Мощный толчок CASE - средства получили в пору внедрения объекто - ориентированной технологии разработки ПО, когда старого, проверенного временем метода проектирования "сверху вниз" стало явно недостаточно. К тому же появились технологии объектного моделирования Booch, OMT, UML, сами по себе весьма сложные для привязки к языкам программирования, чтобы оперировать ими вручную.

Сегодня лидирующей в мире CASE-системой считается Rational Rose корпорации Rational Software. Система Rational Rose нацелена на создание модулей с использованием языка Unified Modeling Language (UML). Кстати, UML стал стандартным языком объектно-ориентированно разработки не без подачи Rational Software, которая не только выпускает программные продукты, где используются UML, но и активно принимает участие в организации Object Management Group (OMG), занятой созданием и обновлением спецификаций языка UML, технологии распределенных вычислений CORBA и т.д. в компании Rational работают три создателя и евангелиста объектно-ориентированной разработки и языка UML. Это Гради Буч, Айвар Джекобсон и Джим Рамбаух.

Последняя версия CASE-системы компании Rational Software Rational Rose 98 уже вовсю применяется для создания коммерческого ПО и поддерживает популярные языки программирования Java, Cu++, Смолток, Ада, Visual Basic, Power Builder и Forte. Кроме того, пакет Rose 98 способен генерировать описания на языках Interface Definition Language (IDL) для приложений CORBA и Data Definition Language (DDL) для приложений доступа к базам данных, в том числе и Oracle 8. Разумеется, поддержка того или иного языка программирования зависит от того, о какой редакции пакета Rational Rose 98 идет речь.

К примеру, нельзя требовать многого от самого простого варианта пакета - Rose 98 Modeler Edition. Зато Rose 98 Enterprise Edition оснащен от души.

Нельзя не отметить, что система Rose - признанный лидер среди средств визуального моделирования, и, мспользуя ее, можно интерактивно разрабатывать архитектуру создаваемого приложения, генерировать его исходные тексты и параллельно работать над документированием разрабатываемой системы. С помощью Rational Rose можно создавать новые модели на базе обратного разбора двоичных com модулей или исходные тексты прикладных программ и библиотек классов.

Преимущества от применения Rational Rose 98 значительны:

1. Сокращение цикла разработки приложения.

2. Увеличение продуктивности работы программистов.

3. Улучшение потребительских качеств создаваемых программ за счет ориентации на пользователей и бизнес.

4. Способность вести большие проекты и группы проектов.

5. Возможность повторного использования уже созданного ПО за счет упора на разбор их архитектуры и компонентов.

6. Язык UML служит универсальным "мостиком" между разработчиками из разных отделов.

5. Технологическая схема решения задач.

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

Она оказывается неэффективной по ряду причин. Во-первых, пользователь не всегда точно знает, чего он хочет, и алгоритмист, когда формализует задачу, поневоле упрощает ее, теряет или отбрасывает многое из того, что пользователь знает, но либо не сообщил алгоритмисту, либо опрометчиво согласился на предлагаемые упрощения. Полученная после этого модель программируется и реализуется на ЭВМ. А пользователь явно не доволен. Только теперь он понял, что ему нужно, и видит, что ему дали не то, что ему нужно. После этого начинается второй раунд взаимодействия, за ним, возможно третий, четвертый и т.д.

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

Возникает идея - убрать из технологической схемы алгоритмиста, сократить пользователя к ЭВМ: пусть он теперь со своей задачей обращается прямо к программисту. Правда, для этого нужно, чтобы программист повысил свой профессиональный уровень, овладел бы "смежной" профессией алгоритмиста. Но тогда программисты станут более дефицитными, чем сейчас, ибо требования к ним резко возрастут. А ведь армия программистов и так не успевает обслужить всех желающих, и если темпы роста пользователей не уменьшатся, то все население земного шара будет состоять из пользователей и программистов.

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

А что если и программиста удалить из технологической цепи пользователь - ЭВМ? Это можно сделать, если пользователи научатся программировать, станут профессионалами в двух областях - в своей собственной и в программировании. Насколько это возможно? И сейчас существуют специалисты, овладевшие искусством программирования настолько, что сами свободно работают с вычислительной машиной. Но таких специалистов не много, так как овладеть двумя совершенно разными профессиями - дело нелегкое. И, как правило, в одно из них человек остается все-таки полупрофессионалом.

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

Индустрия искусственного интеллекта.

Бум, возникший в конце семидесятых годов в искусственном интеллекте и приведший к созданию новой отрасли промышленности, не случаен. Три причины вызвали его.

Первая - угроза всеобщей мобилизации населения земного шара в программисты привела к идее пятого поколения ЭВМ. Но создание таких ЭВМ требует разработки средств автоматического выполнения функций алгоритмиста и программиста, то есть интеллектуальных функций по формализации задач и составлению программ для их решения. А это уже сфера искусственного интеллекта, ибо одно из толкований целей этой науки состоит как раз в утверждении, что она должна создавать методы автоматического решения задач, считающихся в человеческом понимании интеллектуальными. Это означает, что создание ЭВМ пятого поколения невозможно без использования достижений, накопленных в искусственном интеллекте.

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

К-во Просмотров: 253
Бесплатно скачать Реферат: Эволюция языков программирования