|
Программирование >> Структурное программирование
1. Машинные языки 2. Языки ассемблера 3. Языки высокого уровня Любой компьютер может непосредственно понимать лишь свой собственный машинный язык. Машинный язык - это природный язык определенного компьютера. Он определяется при проектировании аппаратных средств этого компьютера. Машинные языки в общ;ем случае содержат строки чисел (в конечном счете сокраш;енные до единиц и нулей), которые являются командами компьютеру на выполнении большинства элементарных операций в тот или иной момент времени. Машинные языки машинно-зависимы, т.е. каждый машинный язык может быть- использован только на компьютере одного определенного типа. Машинные языки тяжелы для человеческого восприятия, как это можно видеть из следующ;его примера программы на машинном языке, которая складывает сверхурочную зарплату с основной и запоминает результат как обш;ую зарплату: +1300042774 +1400593419 +1200274027 По мере повышения популярности компьютеров стало очевидно, что программирование на машинных языках просто слишком медленно и утомительно для большинства программистов. Вместо использования строк чисел, которые компьютер мог бы понимать непосредственно, программисты начали использовать похожие на английский язык аббревиатуры для представления элементарных компьютерных операций. Эти аббревиатуры, напоминаюш;ие английский язык, сформировали основу языков ассемблера. Для преобразования программ на языке ассемблера в машинный язык со скоростью компьютера были разработаны программы трансляции, называемые ассемблерами. Следуюш;ий фрагмент программы на языке ассемблера также складывает сверхурочную зарплату (OVERPAY) с основной (BASEPAY) и запоминает результат как обш;ую зарплату (GROSSPAY), но он более понятен по сравнению со своим машинным аналогом: LOAD BASEPAY ADD OVERPAY STORE GROSSPAY Хотя такой код более понятен людям, он непонятен компьютеру до тех пор, пока не будет преобразован в компьютерный код. Использование компьютеров резко возросло с появлением языков ассемблера, но эти языки все еще требовали много команд для полного описания даже простых задач. Для ускорения процесса программирования были разработаны языки высокого уровня, в которых иногда достаточно написать всего один оператор для решения реальной задачи. Программы трансляции, которые преобразуют программы на языках высокого уровня в машинные коды, называются компиляторами. Языки высокого уровня позволяют программисту писать программы, которые выглядят почти так же, как повседневный английский, и используют общепринятую математическую нотацию. Программа расчета зарплаты, написанная на языке высокого уровня, могла бы содержать такой оператор как: grossPay = basePay + overTimePay Очевидно, что языки высокого уровня гораздо удобнее с точки зрения программистов по сравнению с языками ассемблера и с машинными кодами. С и С++ относятся к числу наиболее мощных и наиболее распространенных языков высокого уровня. Процесс компиляции программы с языка высокого уровня в машинный язык может занимать значительное время. Для непосредственного выполнения программ на языке высокого уровня без необходимости их компиляции в машинный язык были разработаны программы интерпретаторы. Хотя скомпилированные программы выполняются быстрее чем интерпретируемые, интерпретаторы популярны в таких условиях, когда программы часто перекомпилируются для добавления в них новых возможностей и исправления ошибок. Но когда программа разработана, ее скомпилированная версия будет выполняться более эффективно. 1.7. История С++ Язык С++ развился из С, который в свою очередь был создан на основе двух предшествующих языков - BCPL и В. Язык BCPL был создан в 1967 году Мартином Ричардом как язык для написания компиляторов и программного обеспечения операционных систем. Кен Томпсон предусмотрел много возможностей в своем языке В - дубликате BCPL и использовал В для создания ранних версий операционной системы UNIX в Bell Laboratories в 1970 году на компьютере DEC PDP-7. И BCPL, и В были нетипичными языками - каждый элемент данных занимал одно слово в памяти и бремя обработки элемента данных, например, как целого или действительного числа падало на плечи программиста. Язык С был развит из В Деннисом Ритчи в Bell Laboratories и первоначально реализован на компьютере DEC PDP-H в 1972 году. С использует многие важные концепции BCPL и В, а также добавляет типы данных и другие свойства. Первоначально С приобрел широкую известность как язык разработки операционной системы UNIX. Сегодня фактически все новые операционные системы написаны на С или на С++. В течение двух последних десятилетий С стал доступным для большинства компьютеров. С независим от аппаратных средств. При тщательной разработке на С можно написать мобильные программы, переносимые на большинство компьютеров. В конце 70-х годов С развился в то, что теперь относят к традиционному С , классическому С или С Кернигана и Ритчи . Публикация издательством Prentice-Hall книги Кернигана и Ритчи Язык программирования С привлекла широкое внимание к этому языку. Эта публикация стала одной из наиболее удачных книг по вычислительной технике за все время. Широкое распространение С на различных типах компьютеров (иногда называемых аппаратными платформами) привело, к сожалению, ко многим вариациям языка. Они были похожи, но несовместимы друг с другом. Это было серьезной проблемой для разработчиков программ, нуждавшихся в написании совместимых программ, которые можно было бы выполнять на нескольких платформах. Стало ясно, что необходима стандартная версия С. В 1983 году при Американском Национальном Комитете Стандартов в области вычислительной техники и обработки информации был создан технический комитет X3J11, чтобы обеспечить недвусмысленное и машинно-независимое определение языка . В 1989 году стандарт был утвержден. ANSI скоопери- ровался с Международной Организацией Стандартов (International Standards Organizations - ISO), чтобы стандартизировать С в мировом масштабе; совместный стандарт был опубликован в 1990 году и назван ANSI/ISO 9899: 1990. Копии этого документа можно заказать в ANSI. Второе издание книги Кернигана и Ритчи, вышедшее в 1988 году, отражает эту версию, называемую ANSI С; эта версия языка используется теперь повсеместно. Замечание по мобильности 1.1 Поскольку с - стандартизированный, аппаратно-независимый, широко доступный язык, приложения, написанные на С, часто могут выполняться с минимальными модификациями или даже без них на самых различных компьютерных системах. C-t-b - расширение С - был разработан Бьерном Строустропом в начале 80-х годов в Bell Laboratories. С++ обеспечивает ряд свойств, которые приводят в порядок язык С, но, что более важно, он обеспечивает возможность объектно-ориентированного программирования. Это явилось революционной идеей в мире программного обеспечения. Быстрое, корректное и экономное создание программного обеспечения остается иллюзорной мечтой и это в то время, когда требуется проектирование нового и все более мощного программного обеспечения. Объекты - это эффективные повторно используемые компоненты программного обеспечения, моделирующие элементы реального мира. Разработчики программного обеспечения обнаруживают, что использование достижений модульного, объектно-ориентированного проектирования может значительно повысить продуктивность групп разработки по сравнению с предшествующей популярной технологией программирования, такой, как структурное программирование. Объектно-ориентированные программы легче понимать, корректировать и модифицировать. Было разработано много других объектно-ориентированных языков, включая наиболее заметный из них Smalltalk, разработанный в Центре Исследований Palo Alto компании Xerox (Palo Alto Research Centre - PARC). Smalltalk - чистый объектно-ориентированный язык - в нем буквально все является объектом. С++ - это гибридный язык, он предоставляет возможность программировать и в стиле С, и в объектно-ориентированном стиле, и в обоих стилях сразу. Существует глубокая уверенность в том, что с середины 90-х годов С++ станет доминирующим системно-образующим языком. 1.8. Библиотеки классов С++ и стандартная библиотека С Программы на С++ содержат части, называемые классами и функциями. Вы можете программировать каждую часть, если вам необходимо сформировать С++ программу. Но большая часть программистов на С++ пользуется преимуществами богатого собрания уже существующих классов и функций из библиотек классов С++ и библиотеки стандартных функций ANSI С (которую С++ заимствовал из языка С версии ANSI). Таким образом, реально существуют две области изучения мира С++. Первая - это изучение С++ как такового и вторая - изучение того, как использовать классы из различных библиотек классов С++ и функции из стандартной библиотеки
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |