Практикум для изучения дисциплины «Основы программирования»



Pdf көрінісі
бет72/81
Дата08.07.2020
өлшемі1,55 Mb.
#74978
түріПрактикум
1   ...   68   69   70   71   72   73   74   75   ...   81
Байланысты:
А.А. Тюгашев
А.А. Тюгашев, А.А. Тюгашев, А.А. Тюгашев
ЗАМЕЧАНИЕ 
В  середине  1980-х  годов  компилятор  Клу  реализован  для  советских 
суперкомпьютеров  «Эльбрус»,  язык  был  отобран  среди  прочих  кандидатов 
(Ада,  Модула-2,  Симула)  как  наиболее  целостно  и  полно  реализующий 
концепцию  абстрактных  типов  данных  и  при  этом  довольно  простой  в 
реализации. Барбара Лисков стала лауреатом премии Тьюринга 2008 года. В ее 
представлении  проектирование  языка  Клу  и  создание  серии  эффективных 
компиляторов для него отмечены как фундаментальный вклад в информатику, 
доказавший  практическую  осуществимость  идей  абстракции  данных  и 
превративший теоретическую концепцию в общепризнанный подход. 
В  языке  Клу  уже  были  реализованы  такие  особенности  ООП,  как 
инкапсуляция и полиморфизм. Впрочем, инкапсуляция — не уникальное в 
программировании именно для ООП явление, что не позволяет ее считать 
отличительной  его  чертой.  Что  понимается  под  этим  словом?  На  самом 
деле,  можно  использовать  простой  русский  эквивалент —  сокрытие,  и 
известно  оно  еще  с  начала  использования  локальных  переменных 
процедур и внедрения модульности в программировании. Ясно, что лучше, 
чтобы как можно больше данных были скрыты от внешнего наблюдателя 
внутри некоторого программного модуля, были локальными для него. Во-
первых,  это  позволяет  повысить  безопасность,  предохраняя  информацию 
от случайной или преднамеренной порчи, а во-вторых, чем меньше связей 
между  модулями,  тем  проще  и  быстрее  можно  модуль  заменить  при 
модернизации или сопровождении программы. 
А  что  же  имеется  в  виду  под  полиморфизмом,  также  поддержанным  в 
рамках концепции абстрактного типа данных? 
Рассмотрим еще раз пример с операциями, вроде бы не характерными для 
определенных  типов  данных.  Умножать  строки,  видимо,  бессмысленно  в 
любом  случае.  А  складывать?  Во  многих  языках  программирования 
определена  операция  конкатенации,  или  слияния  строк,  когда  в  конец 
одной  строки  приписывается  другая.  При  этом  часто  она  обозначается 
знаком  «плюс»,  который  используется  и  для  обозначения  сложения! 
Пример на Бейсике: 
10 A$="дядя " + "Ваня" 
20 ? A$ 


Достарыңызбен бөлісу:
1   ...   68   69   70   71   72   73   74   75   ...   81




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет