C stl книга


Обзор книг по STL

C++. Стандартная библиотека.Для профессионалов
Аннотация: Книга посвящена стандартной библиотеке C++, значительно расширяющей возможности базового языка. Особое внимание уделяется стандартной библиотеке шаблонов STL - ее многочисленным контейнерам, итераторам, объектам функций и алгоритмам. Также подробно описана библиотека потокового ввода/вывода IOStrea...

Ключевые слова:

STL для программистов на C++
Аннотация: Стандартная библиотека шаблонов (STL) содержит множество полезных инструментов общего назначения. В этой книге наряду со справочным материалом последовательно изложено введение в предмет, которое позволит быстро освоить основы применения STL в программировании. Небольшие законченные программы служат...

Ключевые слова:

Стандартная библиотека C++ на примерах
Аннотация: В большинстве книг, посвященных программированию, основное внимание уделяется изучению синтаксиса языка, средств и приемов написания программ, а в качестве примеров приводятся довольно простые проекты. Эта книга построена совсем иначе. В ходе работы над проектом TinyPIM автор шаг за шагом прове...

Ключевые слова:

Эффективное использование STL. Библиотека программиста
Аннотация: В этой книге известный автор Скотт Мейерс раскрывает секреты настоящих мастеров, позволяющие добиться максимальной эффективности при работе с библиотекой STL. Во многих книгах описываются возможности STL, но только в этой рассказано о том, как работать с этой библиотекой. Каждый из 50 советов кн...

Ключевые слова:

Азбука STL
Аннотация: Книга является введением в стандартную библиотеку шаблонов STL (Standard Template Library). Содержит информацию о типах контейнеров, итераторах и их видах, методах, используемых при работе с контейнерами. Большое внимание уделено алгоритмам, позволяющим облегчить решение множества стандартных задач...

Ключевые слова:

Обобщенное программирование и STL
Аннотация: В этой книге идея обобщенного программирования демонстрируется на вполне реальном и содержательном примере - на так называемой Стандартной библиотеке шаблонов (STL - Standard Template Library), которая важной составной частью вошла в Международный стандарт языка C++.

Ключевые слова:

Структуры данных и стандартная библиотека шаблонов
Аннотация: В книге рассматриваются основы организации структур данных и их реализации с использованием C++ в качестве языка инструкций. Большинство рассматриваемых структур данных, таких как массивы, векторы, очереди, списки и стеки, имеются в составе стандартной библиотеки шаблонов (STL). Достаточно подробно...

Ключевые слова:

rsdn.org

stl » ProgBook - книги и учебники по программированию

(голосов: 1) | 26 мая 2013 | Просмотров: 5678   
Название: Искусство программирования на C++ Автор: Герберт Шилдт Издательство: БХВ-Петербург Год: 2005 ISBN: 5-94157-544-0, 0-07-225512-9 DJVU: 4 Мб (с исходным кодом)

Книга расскажет, как нужно использовать в работе известный язык программирования C++ и как с его помощью решать интересные задачи. Будут рассмотрены разработки сборщика мусора и панели управления потоком. Каждая глава будет содержать полезные задачи для закрепления знаний.

Теги: stl
Книги по C и C++
(голосов: 0) | 1 марта 2012 | Просмотров: 5017   
Название: C++. Объектно-ориентированное программирование Автор: В. В. Лаптев Издательство: Питер Год: 2008 ISBN: 978-5-91180-200-4 DJVU: 8 Мб

Учебное пособие "C++. Объектно-ориентированное программирование" предназначено в первую очередь для студентов, получающих образование по специальностям, связанным с информационными технологиями. В этой книге разъясняются основные принципы объектно-ориентированного подхода к программированию, описываются языковые конструкции C++ и стандартная библиотека шаблонов STL.

Теги: ооп, stl
Книги по C и C++
(голосов: 0) | 20 февраля 2012 | Просмотров: 6864   
Название: C++ и STL. Справочное руководство, 2-е издание Автор: Дэвид Р. Мюссер, Жилмер Дж. Дердж, Атул Сейни Издательство: Вильямс Год: 2010 ISBN: 978-5-8459-1665-5 DJVU: 10 Мб (с исходным кодом)

Группа авторов, принявших непосредственное участие в разработке стандартной библиотеки шаблонов STL, систематизировала информацию по результатам своего труда и составила специальный справочник. "C++ и STL. Справочное руководство" - второе издание этой книги, переработанное и дополненное новыми главами и приложениями, отражающими новейшие изменения в области STL.

Теги: stl
Книги по C и C++
(голосов: 1) | 7 января 2011 | Просмотров: 4840   
Название: Расширение библиотеки STL для С++. Наборы и итераторы Автор: Мэтью Уилсон Издательство: ДМК Пресс, БХВ-Петербург Год: 2008 ISBN: 978-5-94074-442-9, 978-5-9775-0196-5 PDF: 2 Мб

В книге "Расширение библиотеки STL для С++. Наборы и итераторы" автор демонстрирует, как можно выйти за границы стандарта C++ и расширить обычную библиотеку шаблонов, использовав принципы, которые лежат в её основе, к разным API и нестандартным наборам для того, чтобы получить более выразительные, гибкие, эффективные и надежные программы.

Теги: stl
Книги по C и C++
(голосов: 0) | 27 декабря 2010 | Просмотров: 4952   
Название: Обобщенное программирование и STL: Использование и наращивание стандартной библиотеки шаблонов C++ Автор: Мэтью Г. Остерн Издательство: Невский Диалект Год: 2004 ISBN: 5-7940-0119-4 DJVU: 16 Мб

В книге "Обобщенное программирование и STL: Использование и наращивание стандартной библиотеки шаблонов C++" идея обобщенного программирования показывается на достаточно реальном и очень содержательном примере - на т.н. стандартной библиотеке шаблонов, которая важным элементом вошла в Международный стандарт C++.

Теги: stl
Книги по C и C++
(голосов: 1) | 8 декабря 2009 | Просмотров: 5683   
Название: Отладка в C++. Руководство для разработчиков Автор: Крис Х. Паппас, Уильям Х. Мюррей III Издательство: Бином, McGraw-Hill Companies Год: 2001 ISBN: 5-7989-0218-8, 0-07-212519-5 DJVU: 26 Мб

В книге "Отладка в C++. Руководство для разработчиков" (авторы Крис Х. Паппас, Уильям Х. Мюррей III) изложены как общепринятые методики и стратегии разработки кода и отладки (вплоть до этапа проектирования независимого языка), так и узкоспециальные вопросы, например, по отладке ActiveX. Отдельные главы издания затрагивают очень актуальные и в то же время почти не освещаемые вопросы, такие, как работа с OLE-ориентированными объектами (COM, ActiveX), отладка кода с шаблонами STL и пр.

Теги: stl
Книги по C и C++
(голосов: 0) | 3 июня 2009 | Просмотров: 5932   
Название: Стандартная библиотека C++ на примерах Автор: Пабло Халперн Издательство: Вильямс Год: 2001 ISBN: 5-8459-0154-5 DJVU: 11 Мб

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

Теги: stl
Книги по C и C++
(голосов: 0) | 23 мая 2009 | Просмотров: 5307   
Название: Эффективное использование STL. Библиотека программиста Автор: Скотт Мейерс Издательство: Питер Год: 2002 ISBN: 5-94723-382-7 DJVU: 1 Мб

Книга Скотта Мейерса "Эффективное использование STL" содержит в себе массу раскрытых тайн истинных мастеров программирования, используя которые можно достичь предельной результативности при работе с библиотекой STL. В разных изданиях можно найти описание возможностей STL, однако только в этом содержатся методы работы с обсуждаемой библиотекой.

Теги: stl
Книги по C и C++
(голосов: 0) | 16 мая 2009 | Просмотров: 8167   
Название: Объектно-ориентированное программирование на C++ Автор: Айра Пол Издательство: Бином, Невский Диалект Год: 2001 ISBN: 5-7940-0036-8, 5-7989-0140-8, 0-201-89550-1 PDF: 18 Мб

Книга Айры Пол "Объектно-ориентированное программирование на С++" не учебник по С++ и не курс по объектно-ориентированному программированию (ООП), но может пригодиться в качестве и того, и другого. Эта книга поможет пользователю научиться создавать объектно-ориентированные программы на С++. Для разных виртуальных идей и понятий ООП в С++ имеются определенные, применяемые в них, конструкции.

Теги: ооп, stl
Книги по C и C++
(голосов: 0) | 4 января 2009 | Просмотров: 6887   
Название: C++ Стандартная библиотека Автор: Николай Джосьютис Издательство: Питер Год: 2004 ISBN: 5-94723-635-4 DJVU: 5 Мб

В книге "С++. Стандартная библиотека." подробно описывается стандартная библиотека языка программирования С++, которая способна значительно расширить возможности основного базового языка. Основное внимание издания сосредоточено на стандартной библиотеке шаблонов STL, а именно контейнерах, итераторах, алгоритмах и объектах функций.

Теги: stl
Книги по C и C++

Категории

Магазин книг

Архив новостей

Опрос

Теги

progbook.ru

Скачать Мюссер Д., Дердж Ж., Сейни А.

Мюссер Д., Дердж Ж., Сейни А.

Рейтинг книги

9.67

(9)

10

Данная книга, написанная авторами, принимавшими непосредственное участие в разработке и применении стандартной библиотеки шаблонов (STL), представляет собой подробное справочное пособие по STL и включает в себя доскональное описание каждого элемента библиотеки и множество полезных примеров. Первое издание было с воодушевлением принято программистами как наиболее понятное, полное и практичное введение в стандартную библиотеку шаблонов (STL).

На страницах книги читатель найдет описание обобщенных алгоритмов, итераторов, функциональных объектов, контейнеров и множества других элементов. Ряд нетривиальных приложений на практике продемонстрируют использование мощи и гибкости STL в повседневной работе программиста. Книга также разъясняет, как интегрировать STL с другими объектно-ориентированными методами программирования. Она будет вашим постоянным спутником и советчиком при работе над проектами любой степени сложности. Во втором издании отражены все самые последние изменения в STL на момент написания книги; в нем появились новые главы и приложения. Множество новых примеров иллюстрируют отдельные концепции и технологии; большие демонстрационные программы показывают, как использовать STL в реальной разработке приложений на языке программирования C++. Также во втором издании материал изложен более доступно, и здесь больше примеров практического использования STL. Кроме того, сделан акцент на вопросах производительности и инструментарии для ее измерения.

"Изучаем Java" - это не просто книга. Она не только научит вас теории языка Java и объектно-ориентированного программирования, она сделает вас программистом. В ее основу положен уникальный метод обучения на практике. В отличие от классических учебников информация дается не в текстовом, а в...

2012 год

132.25 МБ

7.6

скачиваний: 4991

Книга является одним из самых популярных в мире учебников по C++. Характерной ее особенностью является "раннее введение" в классы и объекты, т. е. начала объектно-ориентированного программирования вводятся уже в 3-й главе, без предварительного изложения унаследованных от языка C элементов ...

2008 год

18.49 МБ

9.2

скачиваний: 11285

Книга Герберта Шилдта «Java . Полное руководство» (Java SE 7, 8-е издание) предназначена для всех программистов — как для новичков, так и для профессионалов. Начинающий программист найдет в ней подробные пошаговые описания и множество чрезвычайно полезных примеров. А углубленное ра...

2012 год

19.38 МБ

6.3

скачиваний: 6438

Такие известные компании, как Google и Intel, Cisco и Hewlett-Packard, используют язык Python, выбрав его за гибкость, простоту использования и обеспечиваемую им высокую скорость разработки. Он позволяет создавать эффективные и надежные проекты, которые легко интегрируются с программами и инструмент...

2011 год

12.21 МБ

8.6

скачиваний: 6443

В этой книге описаны все основные средства языка C++ — от элементарных понятий до супервозможностей. После рассмотрения основ программирования на C++ (переменных, операторов, инструкций управления, функций, классов и объектов) читатель освоит такие более сложные средства языка, как механизм об...

2010 год

10.54 МБ

9.6

скачиваний: 10605

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

2011 год

30.42 МБ

9.7

скачиваний: 5257

Рассмотрена разработка программ для мобильных устройств под управлением операционной системы Google Android. Приведены базовые сведения о платформе Android. Описано программное обеспечение, необходимое для разработки Android-пpилoжeний. Рассмотрены основные компоненты приложений, использование базов...

2011 год

13.47 МБ

8.3

скачиваний: 5355

Книга является общепризнанным руководством для изучения языка С, который был в свое время разработан специально как язык реализации операционной системы UNIX. Приводится полное описание языка, ориентированное на его практическое изучение. Кроме того, дополнительно излагается C++ - язык, являющийся л...

2009 год

53.4 МБ

8.8

скачиваний: 5190

Книга представляет собой пособие, позволяющее быстро освоить приемы разработки и модификации прикладных решений на платформе "1С:Предприятие 8.2". На примере создания реального прикладного решения показана структура различных объектов системы, их назначения и методика использования. При...

2009 год

56.65 МБ

8.7

скачиваний: 10746

Первое издание этой книги вышло в свет во время проведения конференции Tech-Ed в 2001 г. в Атланте (шт. Джорджия). На тот момент платформа .NET пребывала в стадии бета-тестирования. Это вовсе не означает, что ранние издания этой книги не приносили пользу – так или иначе, но книга стала финалис...

2010 год

20.7 МБ

9.3

скачиваний: 8142

mexalib.com

Что почитать программисту С++. Книги по программированию. C++, STL, алгоритмы и структуры данных и д

  • Подбельский В.В. Язык СИ++. 5-е издание. - М.: Финансы и статистика, 2001.-560с

    Подробно рассмотрены синтаксис, семантика и техника программирования языка С++. Читателю достаточно обладать базовыми знаниями по информатике.

  • Прата С. Язык программирования C++. Лекции и упражнения. 5-е издание. - М.: Издательский дом "Вильямс", 2007.-1184с

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

  • Эккель Б. Философия C++. Введение в стандартный C++. Том 1. 2-е издание. - СПб.: Питер, 2004.-572с

    В этой книге автор не только подробно описывает все аспекты языка, но также учит читателя мыслить терминами C++.

  • Дьюхэрст С. Скользкие места С++. Как избежать проблем при проектировании и компиляции ваших программ. - М.: ДМК Пресс, 2006.-264с

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

  • Коплиен Дж. Программирование на C++. Классика CS. - СПб.: Питер, 2005.-479с

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

  • Мейерс С. Эффективное использование С++. 55 верных способов улучшить структуру и код ваших программ. 3-е издание. - М.: ДМК Пресс, 2006.-300с

    Советы Скотта Мейерса, почему при написании программы лучше сделать именно так, а не иначе, не раз были прочитаны автором проекта. Хотите быть настоящим программистом? Тогда обязательно прочтите эту книгу.

  • Мейерс С. Эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов. - М.: ДМК Пресс; СПб.: Питер, 2006.-296с

    Эта книга не пересекается с предыдущей, она дополняет ее. Также рекомендуется к прочтению.

  • Саттер Г. Решение сложных задач на С++ (серия C++ in Depth). - М.: Издательский дом "Вильямс", 2003.-400с

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

  • Саттер Г. Новые сложные задачи на С++ (серия C++ in Depth). - М.: Издательский дом "Вильямс", 2005.-272с

    Эта книга также полезна, как и предыдущая.

  • Стефенс Д.Р., Диггинс К., Турканис Д., Когсуэлл Д. С++. Сборник рецептов. - М.: КУДИЦ ПРЕСС, 2007.-624с

    Сборник рецептов по решению разнообразных практических задач, встречающихся в каждодневной работе программиста C++. Рассмотрены темы: сборка приложений, потоковый ввод-вывод, анализ XML-документов, интернационализация, обработка исключений, математические задачи, Boost.Build и другие.

  • Страуструп Б. Дизайн и эволюция С++. - М.: ДМК Пресс; СПб.: Питер, 2007.-445с

    Автор языка С++ рассказывает историю его создания и показывает, почему он реализован именно так.

  • Страуструп Б. Язык программирования С++. Специальное издание. - Бином, Невский Диалект, 2008.-1104с

    Эту книгу называют настольной библией программиста С++. В свое время эта книга была единственной по языку C++. Ее первое издание появилось в 1985 году. Для новичков некоторые моменты из книги могут быть непонятными. Рекомендуется использовать как справочник по языку программирования C++.

  • Эккель Б. Философия C++. Практическое программирование C++. Том 2. - СПб.: Питер, 2004.-608с

    Эту книгу можно назвать учебником С++ по более сложным темам, таким как обработка исключений, RTTI, шаблоны C++, стандартная библиотека C++, автоматизация тестирования и отладки программ и другим.

  • Элджер Дж. C++: Библиотека программиста. - СПб.: Питер, 1999.-320с

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

  • Джосьютис Н. C++. Стандартная библиотека. - СПб.: Питер, 2004.-736с

    Одна из самых лучших книг по данной теме. Помимо STL рассматриваются библиотека потокового ввода/вывода, строки, специальные контейнеры и другие компоненты стандартной библиотеки С++. Изучение STL предполагает наличие у читателя уровня знаний С++ не ниже среднего.

  • Мейерс С. Эффективное использование STL. Библиотека программиста. - СПб.: Питер, 2003.-224с

    Если Вы знакомы с STL и уже используете ее на практике, но при этом у Вас присутствует ощущение того, что Вы делаете это как то не очень эффективно, тогда эта книга для Вас. Здесь Вы найдете 50 рекомендаций для улучшения вашего кода.

  • Мюссер, Дэвид Р., Держд, Жилмер Дж., Сейни, Атул. С++ и STL: справочное руководство, 2-е издание (серия C++ in Depth). - М.: Издательский дом "Вильямс", 2010.-432с

    Справочник по STL c примерами.

  • Кнут Д. Искусство программирования, том 1. Основные алгоритмы. 3-е издание. — М.: Издательский дом "Вильямс", 2010.—720c

    Кнут Д. Искусство программирования, том 2. Получисленные методы. 3-е издание. — М.: Издательский дом "Вильямс", 2007.—832c

    Кнут Д. Искусство программирования, том 3. Сортировка и поиск. 2-е издание. — М.: Издательский дом "Вильямс", 2008.—824c

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

  • Седжвик Р. Алгоритмы С++. Анализ. Структуры данных. Сортировка. Поиск. Алгоритмы на графах. 3-е издание. - М.: Издательский дом "Вильямс", 2011.-1056с

    Популярная книга, в которой рассматриваются базовые структуры данных (массивы, строки, связные списки и т.д.), абстрактные типы данных (АТД), деревья, алгоритмы сортировки и поиска, алгоритмы на графах и другие темы. Предназначена для пользователей средней и высокой квалификации.

  • Топп У., Форд У. Структуры данных в C++. - М.: Издательство "Бином", 2000.-816с

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

  • cpp-reference.ru

    Интервью с создателем C++ STL, 1995 г. Часть 3

    Завершающая часть перевода интервью (первая часть, вторая часть), взятого у создателя Стандартной библиотеки шаблонов Алекса Степанова в 1995 году. Здесь Алекс рассказывает о том, почему в шаблонах не включена поддержка персистентности и серилазизации, о будущем библиотеки и о связи ООП и обобщённого программирования.

    Алекс, STL не реализует объектную модель персистентности (постоянного хранения) объектов. Map и Multimap являются особенно хорошими кандидатами для постоянного хранения контейнеров как инвертированных индексов в базах данных постоянного хранения объектов. Скажите, работали ли Вы в этом направлении или же Вы можете хотя бы прокомментировать реализации этой идеи?

    Это обстоятельство отмечалось многими. STL не реализует персистентность по уважительной причине. STL настолько велика, насколько можно было себе представить в то время. Я не думаю, что любой больший набор компонентов прошёл бы через Комитет по стандартам. Но персистентность является тем, о чём думали некоторые люди тогда. При проектировании STL и особенно во время проектирования компонента-распределителя, Бьярн отметил, что распределители, которые инкапсулируют памяти модели, могут быть использованы для инкапсуляции модели постоянной памяти. Прозрение принадлежит Бьярну, и это важное и интересное прозрение. Несколько компаний, разрабатывающие объектные базы данных, рассматривают эту идею. В октябре 1994 года я посетил встречу Группы по системам управления объектными базами данных. Я выступил с докладом по STL, и после был большой интерес к тому, чтобы сделать контейнеры с их развивающимся интерфейсом соответствующими STL. Они не рассматривали распределители как таковые. Некоторые из членов группы, однако, пытались выяснить, могут ли распределители быть использованы для реализации персистентности. Я ожидаю, что в течение следующего года появятся хранилища объектов с STL-совместимыми интерфейсами, которые будут вписываться в рамки STL.Set, Multiset, Map и Multimap реализуются красно-черными деревьями. Вы экспериментировали с другими структурами, такими как B*-деревья?

    Я не думаю, что это будет достаточно верным для структур данных в памяти, но это то, что должно быть сделано. Те же интерфейсы, определенные STL, должны быть реализованы и другими структурами данных — списками пропусков, полу-сбалансированными деревьями и т.д. Это серьёзная научно-исследовательская деятельность, которая должна быть выполнена, т.к. STL предоставляет нам фреймворк (основу), в котором мы можем сравнивать производительность этих структур. Интерфейс фиксирован. Основные требования сложности фиксированы. Теперь мы можем проводить значимые эксперименты для сравнения различных структур данных друг с другом. Известны представители сообщества, связанного со структурами данных, которые придумывали все возможные виды структур данных для подобных интерфейсов. Я надеюсь, что они будут реализовывать их как обобщённые структуры данных в рамках STL.

    Взаимодействуют ли с вами разработчики компиляторов для реализации STL в их продуктах?

    Да. Я получаю много звонков от поставщиков компиляторов. Пит Беккер из Borland был чрезвычайно полезным. Он помог путём написания кода, так что мы смогли реализовать распределители для всех моделей памяти компиляторов Borland. Symantec собирается выпустить реализацию STL для их компилятора под Macintosh. Edison Design Group была очень полезной. У нас была хорошая поддержка от большинства поставщиков компиляторов.

    STL включает шаблоны, которые поддерживают модель памяти 16-битных компиляторов MS-DOS. С нынешним акцентом на 32-разрядных архитектурах, плоская модель компиляторов и операционных систем, как вы думаете, останется ли верной текущий уклон модели памяти?

    Независимо от архитектуры Intel, модель памяти есть объект, который инкапсулирует информацию о том, что такое указатель, что такое размер целого числа и тип разности указателей, что такое ссылочный тип, связанный с этим указателем, и так далее. Абстрагирование важно́, если мы введём другие виды памяти, такие как постоянная память, разделяемая память и т. д. Приятной особенностью STL является то, что единственное место, где в STL упоминаются машинные типы — то, что относится к реальному указателю, реальной ссылке и т.д. — заключен в примерно 16 строках кода. Всё остальное, все контейнеры, все алгоритмы, построены абстрактно, без упоминания чего-либо, относящегося к машине. С точки зрения переносимости, все вещи, касающиеся конкретных устройств и связанные с понятиями адреса, указателя, и так далее, инкапсулированы в небольшом и хорошо понимаемом механизме. Распределители, однако, не являются необходимыми для STL, вернее, не так важны, как декомпозиция фундаментальных структур данных и алгоритмов.

    Стандарты комитета ANSI/ISO C рассматривали платформо-зависимые вопросы, такие как модели памяти, детали реализации, и не пытались их систематизировать. Примет ли комитет по C++ другой взгляд на эти вопросы? Если да, то почему?

    Я думаю, что STL опережает стандарт С++ с точки зрения моделей памяти. Но есть существенное различие между C и C++. C++ имеет конструкторы и оператор new, которые имеют дело с моделью памяти и которые являются частью языка. Сейчас может быть важным посмотреть на такие обобщающие вещи, как оператор new, чтобы иметь возможность принимать распределители тем же путём, как это делают контейнеры STL. Это не так важно сейчас, как это было до принятия STL, потому что структуры данных STL устранят большинство потребностей в использовании new. Большинство людей не должны аллоцировать массивы, поскольку STL эффективно в этой задаче. Мне никогда не придётся использовать new в своём коде, и я уделяю большое внимание эффективности. Коду свойственно быть более эффективным без использования new. С принятием STL new станет исчезающим видом. STL также решает проблему удаления, поскольку, например, в случае вектора, деструктор уничтожит его на выходе из блока. Вам не нужно беспокоиться об очистке хранилища, как вы делаете при использовании new. STL может существенно сократить потребность в сборке мусора. Дисциплинированное использование контейнеров позволяет вам делать всё, что вам нужно сделать, без автоматического управления памятью. STL конструкторы и деструкторы выполняют распределение правильно.

    Подкомитет C++ по Стандартной библиотеке определяет стандартные пространства имен и соглашения об обработке исключений. Будет ли STL классы иметь пространства имён и исключения?

    Да, будут. Члены Комитета работают с этим, и делают отличную работу.

    Как сильно будет отличаться возможный стандарт от текущего определения STL? Будет ли комитет влиять изменения или дизайн с большей степенью контроля?

    Похоже, есть консенсус в том, что не должно быть существенных изменений в STL.

    Как программисты могут получить первый опыт с STL в ожидании её стандартизации?

    Они могут скачать заголовочные файлы STL butler.hpl.hp.com в / STL и использовать его с компилятором Borland или IBM, или с любым другим компилятором, достаточно мощным, чтобы иметь дело с STL. Единственный способ освоить определённый стиль программирования — это непосредственное программирование в этом стиле. Они должны посмотреть на примеры и писать программы в этом стиле.

    Вы сотрудничаете с P.J. (Биллом) Пладжером, чтобы написать книгу о STL. В чём будет состоять основная идея книги, и когда она запланирована к публикации?

    Это запланировано на лето 1995 года и станет аннотированной реализацией STL. Это будет похоже на книги Билла по стандарту C и проект стандарта Библиотеки C++. Он шефствует над книгой, поэтому книга послужит справочником по стандарту и использованию STL. Я надеюсь написать статью с Бьярном, в которой будет обсуждаться взаимодействие языка и Библиотеки в контексте C++ и STL. А это может привести к другой книге.

    Намного больше работы предстоит сделать. Для STL, чтобы стать успешным, требуется, чтобы люди исследовали и экспериментировали с этим стилем программирования. Должно быть написано больше книг и статей, объясняющих, как программировать в этом стиле. Должны быть разработаны курсы, написаны учебники. Должны быть созданы инструменты, помогающие людям ориентироваться в Библиотеках. STL является фреймворком (рабочей средой), и было бы неплохо иметь инструмент, позволяющий обозревать эту среду.

    Какова связь между обобщённым и объектно-ориентированным программированием?

    В каком-то смысле, обобщенное программирование является естественным продолжением фундаментальных идей объектно-ориентированного программирования — разделение интерфейса и реализации и полиморфное поведение компонентов. Однако, существует принципиальное различие. Объектно-ориентированного программирование подчеркивает синтаксис языковых элементов при конструировании программ. Вы должны использовать наследование, вы должны использовать классы, вы должны использовать объекты, объекты отправляют сообщения. Обобщенное программирование не начинается с определения того, используете ли вы наследование или нет. Оно начинается с попытки выявить или породить таксономии, какие в них объекты и как они себя ведут. То есть, что значит — две вещи идентичны? Какой путь верен для определения идентичности? Дело не только в том, каково поведение идентичных объектов. Вы можете проанализировать идентичность глубже и обнаружить, что есть общее понятие равенства, в котором два объекта равны, если их части, или, по крайней мере, их основные части равны. Мы можем получить общий рецепт для операции равенства. Мы можем обсудить, какие есть виды объектов. Существуют последовательности. Есть операции над последовательностями. Какова семантика этих операций? Какие типы последовательностей с точки зрения сложностных компромиссов мы должны предложить пользователю? Какие есть алгоритмы на последовательностях? Какие различные функции сортировки нам нужны? И только после того как мы определим это, и получим концептуальную таксономию компонентов, мы решаем вопрос о том, как их реализовать. Будем ли мы использовать шаблоны? Используем ли мы наследование? Используем ли макросы? Какую языковую технологию мы используем? Основная идея обобщенного программирования состоит в классификации абстрактных программных компонентов и их поведения и создании стандартной таксономии. Отправной точкой являются реальные, эффективные алгоритмы и структуры данных, а не язык. Конечно, это всегда воплощается на определённом языке. Вы не можете иметь обобщённое программирование вне языка. STL написан на C++. Вы могли бы реализовать его на Ada. Вы могли бы реализовать его в других языках. Они будут немного отличаться, но есть некоторые фундаментальные вещи, которые будут там. Бинарный поиск должен быть везде. Сортировка должна быть везде. Это то, что обычно делают люди. Там будут какие-то изменения в семантике контейнеров, незначительные изменения, определяемые языком. В некоторых языках вы можете использовать наследование в большей степени, в некоторых языках вы должны использовать шаблоны. Но принципиальное отличие в том, что обобщенное программирование начинается именно с семантики и семантической декомпозиции. Например, мы решим, что нам нужен компонент, называемый swap. Тогда мы выясняем, как данный компонент будет работать в разных языках. Акцент делается на семантике и семантической классификации, в то время как в объектно-ориентированном программировании, особенно если вспомнить, как оно развивалось, гораздо больше внимания, и, я думаю, слишком много внимания, уделяется именно тому, как создавать вещи, то есть с использованием иерархии классов. ООП говорит вам, как строить иерархии классов, но не говорит вам, что должно быть внутри этих иерархий классов.

    Как вы представляете себе будущее STL и обобщённого программирования?

    Я уже говорил о том, что мечта программистов — это стандартные репозитории абстрактных компонентов с интерфейсами, которые хорошо понятны и следуют общим парадигмам. Для осуществления этого должно быть намного больше усилий по разработке научных основ этого стиля программирования. STL запускает это в определённой степени, классифицируя семантику некоторых базовых компонентов. Нам нужно больше работать над этим. Цель состоит в превращении разработки программного обеспечения из ремесла в инженерную дисциплину. Она нуждается в таксономии основных понятий и некоторых законов, которые регулируют эти понятия, которые хорошо понятны, которым можно научить, которые каждый программист знает, даже если он не состоянии их правильно сформулировать. Многие люди знают арифметику, даже если они никогда не слышали о коммутативности. Все, кто окончил школу, знает, что 2+5 равно 5+2. Не все из них знают, что это свойство коммутативности сложения. Я надеюсь, что большинство программистов знает фундаментальные семантические свойства основных операций. Что означает присваивание? Что означает равенство? Как конструировать структуры данных.В настоящее время С++ является лучшим средством для этого стиля программирования. Я пробовал разные языки, и думаю, что C++ предоставляет то самое замечательное сочетание абстрактности и эффективности. Однако, я думаю, что можно разработать язык, основанный на C и многих идеях, что принёс C++, но язык, более подходящий для этого стиля программирования, в котором отсутствуют некоторые недостатки C++, в особенности его огромный размер. STL имеет дело с понятиями. Что такое итератор? Не класс. Не тип. Это понятие. (Или, если мы хотим быть более формальным, это то, что Бурбаки называет структурным типом, что логики называют теории, или то, что люди области теории типов называют видом). Это то, что не имеют языкового воплощения в C++. Но могло бы. Вы могли бы иметь языке, где вы могли бы формулировать концепции, уточнить их, и, наконец, превращать их в классы определённым образом. (Есть, конечно, языки, которые касаются видов, но они не имеют особого смысла, если вы хотите просто сортировать.) Мы могли бы иметь язык с возможностью определить нечто под названием forward-итератор, который определён в STL просто как концепция — и в C++ этому нет воплощения. Далее мы можем уточнить forward-итератор до двунаправленного итератора. Затем случайный итератор может быть уточнен из двунаправленного. Можно разработать язык, который позволил бы даже с гораздо большей легкостью программировать в таком стиле. Я полностью убежден, что он должен быть эффективным и настолько же близким к машине, как и C и C++. И я верю, что можно построить язык, который позволяет близко приблизиться к машине, с одной стороны и способен иметь дело с очень абстрактными объектами, с другой стороны. Я думаю, что абстрактности может быть даже больше, чем в C++ без разрыва между машинами, положенными в основу. Я думаю, обобщенное программирование может повлиять на исследования в области языков, и мы будем иметь практические языки, которые просты в использовании и хорошо подходят для этого стиля программирования. Из этого вы можете понять, над чем я далее планирую работать.

    Автор: excoder

    Источник

    www.pvsm.ru

    %PDF-1.6 % 175 0 obj > endobj xref 175 176 0000000016 00000 n 0000004931 00000 n 0000005014 00000 n 0000005143 00000 n 0000005487 00000 n 0000006946 00000 n 0000007073 00000 n 0000007193 00000 n 0000007324 00000 n 0000007361 00000 n 0000007412 00000 n 0000007459 00000 n 0000007506 00000 n 0000007553 00000 n 0000007600 00000 n 0000007647 00000 n 0000007694 00000 n 0000007740 00000 n 0000007786 00000 n 0000007833 00000 n 0000007880 00000 n 0000007927 00000 n 0000007973 00000 n 0000008020 00000 n 0000008067 00000 n 0000008114 00000 n 0000008161 00000 n 0000008208 00000 n 0000008255 00000 n 0000008302 00000 n 0000008349 00000 n 0000008396 00000 n 0000008443 00000 n 0000008490 00000 n 0000008537 00000 n 0000008584 00000 n 0000008631 00000 n 0000008677 00000 n 0000008723 00000 n 0000008801 00000 n 0000012157 00000 n 0000015767 00000 n 0000015820 00000 n 0000019746 00000 n 0000023335 00000 n 0000026800 00000 n 0000029467 00000 n 0000031972 00000 n 0000034695 00000 n 0000037389 00000 n 0000037707 00000 n 0000043596 00000 n 0000043675 00000 n 0000043916 00000 n 0000043970 00000 n 0000044158 00000 n 0000044476 00000 n 0000049568 00000 n 0000049765 00000 n 0000050082 00000 n 0000052632 00000 n 0000052947 00000 n 0000056300 00000 n 0000056354 00000 n 0000056552 00000 n 0000056871 00000 n 0000058769 00000 n 0000058957 00000 n 0000059167 00000 n 0000059377 00000 n 0000059685 00000 n 0000060497 00000 n 0000060684 00000 n 0000060980 00000 n 0000061591 00000 n 0000061775 00000 n 0000061967 00000 n 0000062159 00000 n 0000062331 00000 n 0000062743 00000 n 0000062981 00000 n 0000063601 00000 n 0000063704 00000 n 0000064010 00000 n 0000064887 00000 n 0000065068 00000 n 0000065264 00000 n 0000065582 00000 n 0000071538 00000 n 0000072235 00000 n 0000072289 00000 n 0000072492 00000 n 0000074815 00000 n 0000075380 00000 n 0000075686 00000 n 0000077466 00000 n 0000078994 00000 n 0000079302 00000 n 0000079896 00000 n 0000080961 00000 n 0000081276 00000 n 0000082103 00000 n 0000083405 00000 n 0000084323 00000 n 0000084596 00000 n 0000085158 00000 n 0000169923 00000 n 0000171976 00000 n 0000172288 00000 n 0000177509 00000 n 0000182824 00000 n 0000183142 00000 n 0000187671 00000 n 0000191515 00000 n 0000191660 00000 n 0000191941 00000 n 0000192711 00000 n 0000196011 00000 n 0000197022 00000 n 0000197339 00000 n 0000213273 00000 n 0000213334 00000 n 0000213542 00000 n 0000213725 00000 n 0000213908 00000 n 0000214223 00000 n 0000220708 00000 n 0000221024 00000 n 0000234965 00000 n 0000235283 00000 n 0000251011 00000 n 0000251328 00000 n 0000285984 00000 n 0000297320 00000 n 0000298280 00000 n 0000298435 00000 n 0000299395 00000 n 0000299551 00000 n 0000300511 00000 n 0000300658 00000 n 0000301618 00000 n 0000301765 00000 n 0000302725 00000 n 0000302873 00000 n 0000303833 00000 n 0000303981 00000 n 0000304941 00000 n 0000305089 00000 n 0000306049 00000 n 0000306197 00000 n 0000307134 00000 n 0000307282 00000 n 0000308242 00000 n 0000308396 00000 n 0000309356 00000 n 0000309510 00000 n 0000310470 00000 n 0000310624 00000 n 0000311567 00000 n 0000311733 00000 n 0000312690 00000 n 0000313683 00000 n 0000313775 00000 n 0000314003 00000 n 0000314334 00000 n 0000316192 00000 n 0000316288 00000 n 0000316506 00000 n 0000316844 00000 n 0000318333 00000 n 0000318409 00000 n 0000318641 00000 n 0000318951 00000 n 0000319028 00000 n 0000319103 00000 n 0000003816 00000 n trailer ]>> startxref 0 %%EOF 350 0 obj >stream xUmL[U~Ϲ Rn)R2dEm;RYį_lydDiLcuUccL>V1$Z囜>{{@

    www.kuchaknig.ru


    Смотрите также