|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Теоретическая часть. В наше время, современный мир не возможно представить мир без вычислительной техники, а вычислительную технику не возможно представить без языковВведение В наше время, современный мир не возможно представить мир без вычислительной техники, а вычислительную технику не возможно представить без языков программирования, ведь не зря наша век был прозван «век высоких технологий». Можно смело сказать что мечта Билла Гейца совершилась, и у каждой «домохозяйки» есть дома компьютер. Что же это дало, это дало то что появился огромный спрос на программное обеспечение, по скольку у каждого пользователя есть свои задачи которые он хочет решит или облегчить с помощью компьютера, а учитывая то что без вычислительной техники не обходится не одно предприятие то это вызывает огромный спрос на специалистов в сфере информации. В данной курсовой работе мы рассмотрим: историю самого популярного языка программирования С++ и рассмотрим реализацию конкретной задачи решённой с помощью языка С++ в среде программирования Борланд Билдер С++. Теоретическая часть История языка С++ Язык Си, как и любой другой, зародившийся в ходе эволюции программирования, появился не на пустом месте. У него были свои предшественники, изучая которые можно отыскать ключ к разгадке свойств и механизмов Си. Сама атмосфера 1960-х годов способствовала возникновению чего-либо подобного. Питер Мойлан так пишет об этом [2]: «Нужен был язык, способный обойти некоторые жесткие правила, встроенные в большинство языков высокого уровня и обеспечивающие их надежность. Нужен был такой язык, который позволил бы делать то, что до него можно было реализовать только на ассемблере или на уровне машинного кода. Это привело к появлению концепции машинно-ориентированных языков промежуточного уровня. Надо признать, что Си был не единственным подобным языком и уж никак не самым первым. В сущности, в это время машинно-ориентированные языки стали появляться, как грибы после дождя. Все они походили один на другой, как члены единой семьи, но вовсе не потому, что авторы списывали их друг у друга, а потому, что они были под влиянием одних и тех же идей, витавших в то время в воздухе». Главным прародителем языка Си стал BCPL. Его разработал Мартин Ричардс, когда в 1966–1967 гг. посещал Массачусетский технологический институт (MIT). Это была несколько упрощенная версия языка CPL (Cambridge Programming Language). Первоначально компилятор BCPL был реализован для операционных систем GECOS и MULTICS, работавших на компьютерах компании General Electric моделей GE-635 и GE-645 соответственно. BCPL использовался для реализации операционной системы TRIPOS, которая впоследствии была положена в основу AmigaDOS. Близким по духу к BCPL является язык BLISS (Basic Language for Implementation of System Software), созданный Биллом Вульфом в университете Карнеги-Меллон в 1969 г. В 1969 г. Дуг Макилрой реализовал язык TMG (Макклар, 1965), придуманный специально для создания компиляторов. Кен Томпсон, вдохновленный работой Макилроя, решил, что для операционной системы UNIX (правда, тогда она еще так не называлась) нужен свой язык системного программирования. После нескольких неудачных экспериментов с Фортраном он создал такой язык и назвал его B (Би). По сути, B * — это синтаксически видоизмененный BCPL, который Томпсону удалось втиснуть в 8 Кбайт памяти. Почему же он получил такое имя? Существует две гипотезы его происхождения: от начальной буквы либо BCPL, либо другого языка Томпсона — Bon, названного в честь его жены Бонни. Многие знают о том, что компилятор языка Си был написан на самом Си (подобно тому, как несколько раньше группа Никлауса Вирта реализовала компилятор Паскаля [3] на Паскале). Однако гораздо менее известен тот факт, что его создатели во многом пошли по следам компилятора языка B, который был написан Кеном Томпсоном на самом B. В результате работ Макилроя появился компилятор компиляторов TMGL. С его помощью была проведена программная раскрутка (bootstrapping) сначала языка B, а затем и Си. Иными словами, компиляторы для этих языков были написаны на тех же самых языках. Компилятор языка B впервые появился на компьютере PDP-7, где он генерировал не машинные инструкции, а шитый код — интерпретационную схему, где компилятор генерирует последовательность адресов, обозначающих фрагменты кода. Эти фрагменты и производят элементарные операции. В случае компилятора B операции выполнялись на простой стековой машине. Важным технологическим достижением группы, куда входили Томпсон и Ритчи, стал кросс-компилятор языка B: он был написан на самом B, работал на 18-разрядной PDP-7, генерировал код для 36-разрядной GE-635 и при этом умещался в 4 тыс. слов памяти PDP-7. Интересно, что у языка B первый компилятор занимал объем памяти 8 Кбайт, а у языка Си — 16 Кбайт. Связанные родственными узами, языки BCPL, B и Си различаются синтаксисом, хотя и имеют общий фундамент. Они ориентированы на системное программирование. Написанные на них программы состоят из последовательности глобальных описаний и описания функций (процедур). Причем в BCPL процедуры могут быть вложенными, а в B и Cи — нет. В отличие от своих потомков, BCPL имел очень широкий набор управляющих конструкций: if-then, test-then-else, unless-do, while-do, until-do, repeat, repeatwhile, repeatuntil, for-to-by-do, loop, break, switchon-into-case-default-endcase. Языки BCPL и B — бестиповые (т. е. не имеют типов), они работают со словом (ячейкой памяти), содержащим фиксированное число разрядов (битов), а память ими рассматривается как линейный массив слов, где значение ячейки памяти можно интерпретировать как индекс в этом массиве. Для всех этих целей BCPL использует оператор «!», а язык B — оператор «*». Деннис Ритчи вспоминает [4]: «В 1971 г. я начал расширять язык B, добавляя тип сhar, а также переписал его компилятор таким образом, чтобы он впрямую генерировал инструкции для PDP-11, а не шитый код. Таким образом, переход от B к Си происходил одновременно с созданием компилятора, способного порождать достаточно быстрые и компактные программы в сравнении с языком ассемблера. Я назвал несколько расширенный язык NB — «новый B» (new B). В язык NB Ритчи ввел первые типы: int и char. Вместе с массивами и указателями они составили его систему типов. Откуда же появилось название Си? Ритчи разъясняет это так: «Создав систему типов, соответствующий синтаксис и компилятор для нового языка, я почувствовал, что он заслуживает нового имени: NB показалось мне недостаточно четким. Я решил следовать однобуквенному стилю и назвал его C (Си), оставляя открытым вопрос, являлось ли после B это следующей буквой в алфавите или в названии BCPL». Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |