|
Программирование >> Полиморфизм без виртуальных функций в с++
[Stroustrup, 1987b] [Stroustrup, 1987с] [Stroustrup, 1987d] [Stroustrup, 1988] [Stroustrup, 1988b] [Stroustrup, 1989] [Stroustrup, 1989b] [Stroustrup, 1990] [Stroustrup, 1990b] [Stroustrup, 1991] [Stroustrup, 1992] [Stroustrup, 1992b] [Stroustrup, 1993] [Taft,1992] [Tiemann,1987] [Tiemann,1990] [Weinand,1988] [Wikstrum,1987] [Waldo, 1991] [Waldo, 1993] [Wilkes, 1979] [Woodward, 1974] Bjarne Stroustrup and Jonatiian Siiopiro: A Set of С classes for Co-Routine Style Programming. Proc. USENIX С++ Conference. Santa Fe, NM. November 1987. Bjarne Stroustrup: Tiie Evolution of С++: 1985-1987. Proc. USENIX С++ Conference. Santa Fe, NM. November 1987. Bjarne Stroustrup: Possible Directions for С++. Proc. USENIX С++ Conference. Santa Fe, NM. November 1987. Bjarne Stroustrup: Type-safe Linkage for С++. USENIX Computer Systems, Vol 1 No 4. Fall 1988. Bjarne Stroustrup: Parameterized Types for С++. Proc. USENIX С++ Conference, Denver, CO. October 1988. Also, USENIX Computer Systems, Vol 2 No 1. Winter 1989. Bjarne Stroustrup: Standardizing С++. Ttie С++ Report. Vol 1 No 1. January 1989. Bjarne Stroustrup: The Evolution of С 1985-1989. USENIX Computer Systems, Vol 2 N 3 Summer 1989. Revised version of [Stroustrup, 1987c]. Bjarne Stroustrup: On Language Wars. Hotline on Object-Oriented Technology. Vol1,No3. January 1990. Bjarne Stroustrup: Sixteen Ways to Stack a Cat. The С++ Report. October 1990. Bjarne Stroustrup: The С++ Programming Language (2nd edition). Addison-Wesley, Reading, MA. 1991. ISBN 0-201-53992-6. Bjarne Stroustrup and Dmitri Lenkov: Run-Time Type Identification for С++. The С++ Report. March 1992. Revised version: Proc. USENIX С++ Conference. Portland, OR. August 1992. Bjarne Stroustrup: How to Write a С++ Language Extension Proposal. The С++ Report. May 1992. Bjarne Stroustrup: The History of С++: 1979-1991. Proc. ACM History of Programming Languages Conference (HOPL-2). April 1993. ACM SIGPLAN Notices. March 1993. S. Tucker Taft: Ada 9X: A Technical Summary. CACM. November 1992. Michael Tiemann: Wrappers> Solving the RPC problem in GNU С++. Proc. USENIX С++ Conference. Denver, CO. October 1988. Michael Tiemann: An Exception Handling Implementation for С++. Proc. USENIX С++ Conference. San Francisco, CA. April 1990. Andre Weinand, et al.: ЕГ++ - An Object-Oriented Application Framework in С++. Proc. OOPSLA88. September 1988. E ke Wikstrum: Functional Programming in Standard ML. Prentice-Hall, Englewood Cliffs, NJ. 1987. ISBN 0-13-331968-7. Jim Waldo: Controversy: The Case for Multiple Inheritance in С++. USENIX Computer Systems, vol 4, no 2, Spring 1991. Jim Waldo (editor): The Evolution of С++. A USENIX Association book. The MIT Press, Cambridge, MA. 1993. ISBN 0-262-73107-X. M.V. Wilkes and R.M. Needham: The Cambridge CAP Computer and its Operating System. North-Holland, New York. 1979. ISBN 0-444-00357-6. P.M. Woodward and S.G. Bond: Algol 68-R Users Guide. Her Majestys Stationery Office, London. 1974. ISBN 0-11-771600-6. Часть I Глава 1. Предыаория С++ Глава 2. Язык С with Classes Глава 3. Рождение С++ Глава 4. Правила проектирования языка С++ Глава 5. Хронология 1985-1993 гг. Глава 6. Стандартизация Глава 7. Заинтересованноаь и использование Глава 8. Библиотеки Глава 9. Перспективы развития языка С++ в части I описываются истоки С++ и его эволюция от С with Classes, а также принципы, определявшие развитие языка на протяжении этого периода и в последующее время. Здесь приводится хронология событий после выхода версии 1.0 и рассказывается о стандартизации. Также обсуждаются сферы применения С++ и другие вопросы. Глава 1. Предыстория С++ Давным-давно, когда правило Зло1 Криствн Нойгоорд 1.1. Язык Simula и распределенные системы Предыстория С++ - за пару лет до того, как мне пришла в голову мысль добавить к С некоторые возможности из Simula, - важна потому, что в это время выкристаллизовались критерии, позднее положенные в основу С++. Я работал над докторской диссертацией в лаборатории вычислительной техники Кембриджского университета в Англии. Тема - изучение альтернативных способов построения распределенных систем. Работа велась на базе Кембриджского компьютера САР с его экспериментальной и постоянно эволюционируюп1ей операционной системой [Wilkes, 1979]. Подробности этой работы и ее результаты [Stroustrup, 1979] к С++ отношения не имеют. Существенными оказались интерес к построению профаммного обеспечения из четко определенных модулей и тот факт, что основным средством для экспериментирования стал большой симулятор, который я написал для моделирования работы программ в распределенной системе. Первая версия симулятора была написана на Simula [Birtwistle, 1979] и работала на компьютере IBM 360/165, установленном в вычислительном центре Кембриджского университета. Возможности Simula почти идеально подходили для моих целей. Особенно поразил тот факт, что концепции языка помогали мне размышлять над существом своей задачи. Концепция класса позволила отобразить понятия из предметной области на языковые конструкции настолько естественно, что мой код оказался понятнее, чем все, что я видел в других языках. То, что классы Simula могли использоваться в качестве сопрограмм, позволило мне легко выразить параллельность, присущую моему приложению. Например, объект класса computer было совсем просто заставить работать псевдопараллельно с другими объектами того же класса. Варианты понятий прикладного уровня выражались через иерархию классов. Так, виды компьютеров можно было представить как классы, производные от computer, а типы механизмов меж.модульных коммуникаций - как классы, производные от класса IPC. Правда, этот прием я применял нечасто: для моего симулятора важнее было использовать классы с целью представления параллельности. Во время написания и начальной отладки программы я смог в полной мере оценить выразительную мощь системы типов в Simula и способность компилятора находить ошибки типизации. Я заметил, что ошибки эти почти всегда являлись свидетельством невнимательности или изъяна проектирования. Последнее было
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |