Вы здесьПризрак бродит по Либрусеку. Призрак библиотечного классификатора
Опубликовано пн, 13/10/2008 - 11:49 пользователем Ulenspiegel
Товарищи! Господа и дамы! Пани и панове! К вам обращаюсь я, братья и сестры мои... Поскольку классификация по Грибову плоская - раз, и ... предельно лаконичная - два, не имеет ли смысл расширить формат на дополнительное поле классификатора ?
|
Вход на сайтПоиск по блогам и форумамUser menuПоследние комментарии
Aliki RE:Подайте бедному копеечку на книжку с литреса... 8 часов
laurentina1 RE:Ирина Александровна Велембовская - Немцы 1 день Саша из Киева RE:Кто сможет раздобыть и оцифровать нужные мне книги? 4 дня Саша из Киева RE:Избранное 1 неделя Alligatoreader RE:Багрепорт - 2 1 неделя fedor.de RE:Отображение страницы Librusek 1 неделя Isais RE:Чиполь Сергеевич Наглецов - Огненный дракон [СИ] 1 неделя kopak RE:Таинственная личность админа Флибусты 2 недели blahblahblah2024 RE:Беженцы с Флибусты 2 недели sem14 RE:Что читать о блокаде Ленинграда. Подборка книг 2 недели sem14 RE:Михаил Юрьевич Берг - Андеграунд. Итоги. Ревизия_5 3 недели TaKir RE:Валерия Сергеевна Черепенчук А. Н. Николаева - Мифы... 4 недели Oleg V.Cat RE:B343695 Александр. Книга 1 4 недели Isais RE:Калибрятина/Самиздатина 1 месяц md2k15 RE:Относительно Вархаммер 40 000 1 месяц tvnic RE:"Коллектив авторов" 1 месяц SergL197 RE:Регистрация 1 месяц ejik.v RE:Viva Stiver! 1 месяц Впечатления о книгах
андрей169 про Шалашов: Господин следователь 1 [СИ] (Альтернативная история, Исторический детектив, Попаданцы, Самиздат, сетевая литература)
29 11 Забавная книга. Мне лично зашло хорошо. С продолжением обязательно ознакомлюсь. Оценка: хорошо
udrees про Баковец: Не тот господин 3 (Порно, ЛитРПГ, Самиздат, сетевая литература)
29 11 Книга строго для отдыха мозгов, тем кому нравится читать про влажные подростковые фантазии про гарем, воплощенные в реальность, и сексуальные подвиги, перемешанные с фэнтези. Герой настолько крут, что особо не заморачивается ……… Оценка: неплохо
udrees про Михайлов: Без пощады. Книга 3 [СИ] (Боевая фантастика, Космическая фантастика, Самиздат, сетевая литература)
29 11 Последняя книга из серии, но не последняя книга про месть киборга Вертинского. Написано в том же стиле, что и предыдущие книги. Описание во многом уделено экшену, поэтому всегда держит в тонусе, сражения, драки, убийства и ……… Оценка: отлично!
lukmak про Сочинения Иосифа Бродского в 7 томах
29 11 Бродский - гений. А кто его не понимает - что ж... Он непрост. Но, ребята, если вы его не понимаете - может, это ваша проблема?.. И пиндосы тут ни при чём.
nik_ol про Донцова: Амур с гранатой (Иронический детектив, Детективы: прочее)
27 11 Конечно, я рада, что книги Донцовой выходят и выходят, но неужели, если она сама их пишет, то не помнит, что «старичок» был не Коробков, а Гри, её первый муж, до Ивана в этой серии?! Или всё-таки литературные негры клепают?! Оценка: неплохо
neletay про Котов: Ценитель [СИ] (Городское фэнтези, Самиздат, сетевая литература, Приключения)
27 11 Прочитала только несколько первых глав - и уже очень, очень нравится. Нравится все - сюжет, стиль, язык, ГГ, а также автор, который за всем этим видится. С удовольствием читаю дальше, надеюсь не разочароваться.
Lan2292 про Ермаков: Май, весна и апокалипсис. Книга 1 (Боевая фантастика, ЛитРПГ, Самиздат, сетевая литература)
27 11 Так себе чтиво, но не скучно. Оценка: неплохо
Chernovol про Коровин: После «Украины» (Политика, Публицистика)
25 11 Интересно, такие книги кто-то покупает или их бесплатно раздают. Оценка: нечитаемо
sem14 про Лазарис: Белая ворона (Историческая проза)
25 11 Леонид Гомберг 24 июля 2007 Роман известного в Израиле прозаика, поэта и переводчика Владимира Лазариса «Белая ворона» (Тель-Авив: Ладо, 2003) в этом году был включен в «лонг-лист» популярной премии «Букер». И это ……… Оценка: отлично!
decim про Осне Сейерстад
25 11 Попробовала бы Сурайя-реис не подать в суд! Муж бы убил. "Для контекста добавлю, что после публикации книги семья героя подала на Сейерстад в суд за клевету, но после апелляции писательница была признана невиновной, а через ………
tvv про Кич: Большой дом [СИ] (Ужасы, Мистика, Фанфик, Юмористическое фэнтези)
24 11 Совершенно замечательное "Оккультное Простоквашино".
decim про Галинакс: Женщина-рыцарь. Самые необычные истории Средневековья (Исторические приключения, История)
24 11 А вот это уже лучше. Подлинник на сей раз не знаю, а компиляция - явно автор чем-то вдохновлялся, но не ссылается на - получилась годная, и хорошо подобраны иллюстрации. Неплохо. Оценка: неплохо |
Комментарии
несколько ссылок на тему
Пример каталога с рубрикатором, аннотацией, базой предметного указателя Пример проиндексированной книги пример поиска по индексам пример поиска по метаинформации
Ну а по художке вот интересная задумка, но не доведено
Отв: несколько ссылок на тему
Гут. Классификатор как-нибудь называется и существует ли в виде отдельного документа ?
Кгхм.... И после этого меня считают маньяком ? Да я - агнец божий.... :)
Отв: несколько ссылок на тему
Этого не знаю. А вот вытащить оттуда классификацию вместе со всем каталогом особой проблемы нету - еще в прошлом году это делал:) Надо будет дотащить что нового появилось за это время. Но заметил, что рубрицированных, а особенно проиндексированных книг, среди новинок встечается все меньше и меньше.
:)
По-моему, это как раз пример того, о чем говорил Stager,
только в зачаточном состоянии. Ну и в виду огромной трудоемкости по наполнению, автор бросил. Посему, практического значение не имеет, а интересно только с точки зрения "как может быть".
Кстати, вот специально посмотрел обсуждения фб3 на предмет чего там с классификациями удумали. И - не нашел ничего:) Или плохо искал?
Отв: несколько ссылок на тему
Ну да.
При наличии соответствующего софта и организации - ничего страшного.
А софт у меня есть.
Отв: несколько ссылок на тему
А надо ли - в смысле новое нечто. Не, я конечно только за, если желающие найдутся ручками это все делать - какой бы софт хороший не был, а принятие решения останется за человеком. Или нет?
Тут бы собрать хоть то, что уже есть, с тех же классификаций например, и совместить это на общей книжной базе:(
Отв: несколько ссылок на тему
В принципе - нет, конечно. Но! Для художественной литературы никто ничего содержательного не делал в этой области. И не будет, насколько я в курсе. А было бы забавно. И полезно, безусловно. Достаточно посмотреть на чат.
Но эта задача - именно для сообщества любителей. Ну, или дипломная работа литературоведа :-)
Но внедрение придуманных классификаций в жизнь - это, уж точно, добрая воля участников библиотеки. Ибо лепить рубрики к книгам - пока можно только человеческим разумом. Ну, или руками, хотя бы.
Отв: Призрак бродит по Либрусеку.
Мне показалось, что противники и сторонники классификатора говорят о разных вещах. Де-факто:
Сторонники говорят, что хорошо бы если бы расширенный классификатор был. Противники говорят, что сложности внедрения расширенного классификатора не оправдывают получаемой usability. Так что спор, собственно, хм, недопониманческий.
Конечно, неплохо было бы, если бы классификатор был (вплоть до конницы :). Давайте выясним, какова цена вопроса? Может надобность в дискуссии отпадет?
Отв: Призрак бродит по Либрусеку.
JFYI. УДК есть здесь - http://teacode.com/online/udc/index.html. Интересно, кстати, посмотреть на их about - есть намеки на какую-то автоматизированную систему. Если найдется добрая душа и отзеркалит (например) ресурс, пока его не прикрыли - с меня бутылка кефира. Буду пытаться писать УДК / ББК в теги для тех книг, где они есть в выходных данных, по появлении чуть большего количества свободного времени - попробую проставить для ранее залитых книг, с которыми знаком лично. Пример - http://lib.rus.ec/b/124692. Если кто-нибудь скажет мне, что за составляющая УДК с скобках УДК 510.6(075.8) - еще бутылка кефира. В общем - Gott mit uns! :))
Отв: Призрак бродит по Либрусеку.
wget -a log.txt -nc -c -t200 -x -r -l10 inf -k -np --retry-connrefused "http://teacode.com/online/udc/index.html"
и заодно сэкономишь на кефире:)
Правда, в ключи давно не лазил, уже и забыл чего там накрутил, счас запустил, работает - и ладно:)
Отв: Призрак бродит по Либрусеку.
Проблема не в "скачать", а в "сделать доступным", причем и снаружи - тоже. А кефира мне для хорошего человека не жалко :) В общем - пытаюсь оным УДК пользоваться, если будут замечены несообразности - пинайте, плиз.
Отв: Призрак бродит по Либрусеку.
Не надо, а?
Отв: Призрак бродит по Либрусеку.
Ээээ.... А почему ? Чесслово - это совсем не больно! :)
Или есть более заманчивые предложения ?
Отв: Призрак бродит по Либрусеку.
Потому что правильно Вы не сможете. А ещё потому, что даже если сможете - оно бесполезно.
Но если зудит - лепите лучше индексы ББК. В этом можно усмотреть хоть какую пользу.
Отв: Призрак бродит по Либрусеку.
Не доверяете, значить.... :(
Ладно, буду проставлять УДК/ББК там, где это есть в выходных данных. И насколько упрямства хватит. :)
Отв: Призрак бродит по Либрусеку.
Кстати, Грибов пример файла в fb3 выложил, так вот, кусок из дескрипшен:
<!-- УБК, ББК. Не факт, что это понадобится, но всё к тому идет -->
<udk>82-3</udk>
<bbk>32</bbk>
Призрак бродит по Либрусеку
Подходит именно для систематизации, чтобы старенький библиотекарь с тележкой знал где брать томик.
Комп отлично способен искать без всяких древовидных мегаструктур. Все что нужно - это стандартный поисковый движек, и проверка на валидность ключевых слов- в простейшем случае просто по публикованому списку.
Библиотеки такую систему не испльзуют, во превых потому что хранят макулатуру.-> все равно нужна тележка, и переход ничего самим библиотекарям не дает, во вторых потому что в библиотеках с хайтеком того, туго. Все действия связанные с электронной литературой противозаконны, и в библиотеке совершатся не могут, потому IT-пипл который и мог бы модернизировать систему, относится к библиотеке как к зубоврачебному кабинету-старается забыть как дурной сон.
Отв: Призрак бродит по Либрусеку
Полагаю, что в сравнении с Вами "комп" отлично способен и читать и понимать.
Отв: Призрак бродит по Либрусеку
Моя очень тупой орк, моя совсем не ученый, почему гугль все находить по весь интернет безо всякий умный классификаций, а книга в библиотеке находить сильно трудна. Наверное большое шаманство. Слышал называется бюрократией оно.
Отв: Призрак бродит по Либрусеку
Оно называется "затраты вычислительных ресурсов".
У Гугля (да что там у Гугля, хотя бы у Апорта) вычислительные мощности несколько выше, чем у Либрусека. Содержимое необходимо регулярно индексировать. Вы же не думаете, что Гугль при каждом запросе перерывает зеттабайты Интернета? Нет, для этого создаётся кэш, в котором и содержится информация для поиска. Чем оно чаще обновляется, тем она более актуальна.
Но проблемы регулярного обновления, хранения и доступа к кэшу меркнут по сравнению с проблемой алгоритма индексации. Каким образом вы собираетесь получать ключевые слова? Как уже намекнул Stager, комп не сможет их додумать - получить из текста, проанализировав содержимое книг. Значит, их будут задавать некие литературоведы-сеошники, читая книги, сопоставляя с другими (чтобы избежать лишних ключевых слов)... Может, просто ограничимся жанровым каталогом?
Да и в целом поиск только по ключевикам - зло. Я забью, к примеру что-нибудь про ракетные двигатели, а он мне вместо научной литературы какую-нибуть космическую фантастику.
Ваши данные устарели, закон уже принят. Правда только для трёх крупнейших, но это ведь только начало...
Отв: Призрак бродит по Либрусеку
К чему этот неолуддизм? Кто-то и с гуглем ничего не может найти, но это не недостаток гугла. Просто не умение. Пользоваться поисковиками нужно учиться (немножко, но все же), так же как и пользоваться каталогом. Вряд ли в каталоге Ленинки вы обнаружите раздел "ракетные двигатели".
Про индексацию - у меня на компе стоит и работает абсолютно стандартный индексатор от того же гугла. Каши (и ключевых слов) не просит, поиск обеспечивает. На библиотеке (в отличие от паутины) потребуется реиндексация только новых книг. Любой комп проделает эту работу для среднесуточного поступления за пару минут.
Отв: Призрак бродит по Либрусеку
О! Ещё один орк. Может эта - думать "компу" доверить? Или Гуглю, на худой конец? Лучше выйдет!
А тот, у кого с головой нормально, легко узнает, что что в "каталоге Ленинки" есть ракетные двигатели - это раздел ББК О.6.5.1 Ракетные двигатели космических летательных аппаратов. Как частный случай О.6.5 Силовые установки космических летательных аппаратов, с подразделами О.6.5.1-01 Теория ракетных двигателей космических летательных аппаратов, О.6.5.1-04 Детали , узлы , системы ракетных двигателей космических летательных аппаратов, О.6.5.1.1 Химические ракетные двигатели космических летательных аппаратов, О.6.5.1.2 Электрические ракетные двигатели космических летательных аппаратов.
Ну и ещё, например - Безэлектродные электротермические ракетные двигатели космических летательных аппаратов, Фотонные ракетные двигатели космических летательных аппаратов, Главные ( маршевые ) жидкостные ракетные двигатели космических летательных аппаратов, Хемисферные ракетные двигатели...
Только радости с этого мало - поиск в электронном каталоге не поддерживает поиск по индексу ББК (а кстати - почему? Пойду, спрошу....).
Отв: Призрак бродит по Либрусеку
Отчего же не поддерживает - http://aleph.rsl.ru/F/?func=file&file_name=find-a
Ну это я махнул насчет ракетных двигателей, действительно важная тема и они в ЭК есть. Только вот в этом топике отражена очень узкая тематика - устройство конкретных ракетных двигателей, большей частью диссертации "Об одном важном вопросе...". По истории, скажем, ракетного двигателестроения там ничего нет.
В результате ни гхыра я не стану искать это по каталогу. Или сначала запущу поиск :) по каталогу по ключевым словам, чтобы определить топик.
Ака Орк.
Отв: Призрак бродит по Либрусеку
Ну... э.... Эта - на сарае, бывает, такого напишут...
В общем, с того момента, как на указанной Вами страницу появилась надпись "ББК" - много воды утекло. А оно и ныне... В том же месте... Не ищет, типа.
Отв: Призрак бродит по Либрусеку
На самом деле была мегапрограмма в 90х автореферирования текстов и не четкого поиска в них. Я даже ей пользовался :). Там были хитрые нейросетки и нечеткая логика, например на загрузив туда труды Ключевского я потом удивлял местных историков фактами о родном городе. Программа понимала русский и английский, строила ключевые слова и автореферат. У них логотипом был кальмар, потом меняли название ... В общем ввиду привязки демки к почившей в 90е НТ я даже толком название уже не могу найти. По моему байманцы делали...
Отв: Призрак бродит по Либрусеку
Ого. А не слабо найти? Потому что ныне - сильно плохо с этим делом.
Отв: Призрак бродит по Либрусеку
Вот книжку залил (сам сделал!) - воочию ознакомился с предметом. !!! !!!!!! !!!!!! Это не рубрикатор. Это.... !!!! !!!!! !!!!
Это Грибов сочинил?
В общем, так жить нельзя....
В качестве рубрикатора предлагаю доработать рубрикатор SpyLOG'а: http://dir1.spylog.ru в сторону художественной литературы.
В качестве инструмента указания тегов - использовать http://lbc.rsl.ru, с доработкой для Либрусека.
Отв: Призрак бродит по Либрусеку
поискал, нашел первоназвание --- TextAnalyst , оно реально работало. По ссылке история развития.
http://www.rco.ru/article.asp?th_no=1980
Попробую найти на харде, но больно много времени с 1998 года прошло :(.
вот демки, но на этих они уже заложили по моему (если склероз не изменяет) резкие ограничения, предыдущие демки которые я и потерял (там классически откатывалась дата при инсталяции) были действительно без ограничений :(
http://www.analyst.ru/index.php?lang=eng&dir=content/downloads/
Отв: Призрак бродит по Либрусеку
оно запустилось в wine :) версия аналиста 2.3
Запускать немного с пинка пришлось, сначала маленький кусочек текста, потом сам текст что бы интерфейс ползания по семантическому дереву в wine ожил...
Есть выгрузка в csv построенной сети терминов. Для Альтшулера например получилось
Топовые
1 Задача
2 Решение
3 Изобретатель
В Инете валяется и SDK к аналисту, насколько им можно пользоваться не знаю... Есть еще в виде примочки к експлореру.
Отв: Призрак бродит по Либрусеку
А. Знаю. Даже использовать пытался. Вон - на машине стоит. Только оно что-то как-то зарегистрированное....
SDK использовать не смог - глючит сильно. Поддержки от RCO добиться не удалось - говорят, не поддерживаем, не продаём, и так не дадим.
Отв: Призрак бродит по Либрусеку
вот судьба любой проприетарщины :(
Отв: Призрак бродит по Либрусеку.
Тьфу, блин. Опять задвоился пост.
Отв: Призрак бродит по Либрусеку.
А ещё это шаманство называется "отсутствие текстового представления". Имеются в виду DJVU книги без текстового слоя и PDF в "картиночном" представлении.
А "индексация от гугля" - это, по сути, передоверение формирования списка ключевых слов компу. В каких-то ситуациях хорошо (когда нет физической возможности вникнуть в содержание), в каких-то - плохо (когда наиболее часто употребляемое слово не характеризует содержимое книги). Но у Гугля есть специфика - он индексирует документы, добавление которых ( в WWW) он никак не контролирует. Соответственно - индексация происходит не в момент добавления (разово), и без участия лица, опубликовавшего документ. У нас (Либрусека) ситуация другая - человек, добавляющий книгу обычно ознакомился уже если не с книгой, то хотя бы со сторонней аннотацией на нее, и может либо классифицировать ее по жанру, либо осмысленно выделить какие-либо ключевые слова, её характеризующие.
Отв: Призрак бродит по Либрусеку.
Боюсь, что на этот счёт Вы принимаете желаемое за действительное.
А в остальном, конечно, да. Если в книге нет слов (а одни картинки), то поиск по ключевым словам её не найдет. Будь ты три раза Гугл.
Отв: Призрак бродит по Либрусеку.
Так не бывает. У книги есть название, аннотация, авторы, теги, серии, жанры. Что-нибудь да найдётся.
Отв: Призрак бродит по Либрусеку.
Я имел в виду, например, "голый" pdf-файл картиночный. Или djvu без OCR-слоя. В них, в самих файлах - нет ничего.
Отв: Призрак бродит по Либрусеку.
Это если на диске болтается файл типа HZCH002.djvu.
Но даже в gen.lib.rus.ec книги ищутся: по автору, по словам в названии. А в основной библиотеке есть и аннотации и проч., прописанные добрыми людьми. А внутрь книг поиск все равно не лазит, хоть бы это был и fb2-файл :(.
Отв:Призрак библиотечного классификатора
почему просто не сдаться и не начать назначать произведениям (и писателям) теги? их может быть сколько угодно, и нет проблем тогда искать. Словарь тегов можно составить по мере накопления.
Отв: Призрак бродит по Либрусеку.
У меня, однако, работает. Правда введенный индекс типа О.6.5.1 она тут же преобразует в О651, но раздел "Ракетные двигатели" нашла. Кроме того, где-то внутри встречался поиск, в котором была опция "искать в"
и в списке из Авторов, Заголовков и проч. фигурировал и ББК. Я его тоже юзал - работает.
Кстати - говоря, что "классификатор" Грибова избыточный, я и имел ввиду, что он очень неравномерный. Некоторые поджанры по степени подробности требуют существенно большего списка "жанров" (технический - ниболее яркий пример). Так что его бы сократить, выкинув поджанры более глубокого уровня вложения. А если расширять до наиболее глубокого из представленных уровней, потребуется нарастить список минимум в десятки раз.
Отв: Призрак бродит по Либрусеку.
Это имитация...
Но, впрочем, ладно. На самом деле - я давно не справлялся, как там дела. Может, и сделали. Спрошу, при случае.
Отв: Призрак бродит по Либрусеку.
В общем - говорят, что должно искать введённую подстроку в строке индекса. При этом обе строки хитро приводятся к общему виду. Должно работать.
Отв: Призрак бродит по Либрусеку
Может быть, уважаемому сообществу удастся почерпнуть какую-нибудь идею из того каталогизатора, который используется на «Фантлабе»?
Отв: Призрак бродит по Либрусеку
Угу.... Страуструпа, "Язык программирования С++", предлагаю охарактеризовать,как:
- Сюрреализм
- Религиозное
- Виртуальная реальность
:(((
Нам хочется удобоваримо классифицировать и художественную, и техническую литературу. А не получается....
Отв: Призрак бродит по Либрусеку
Просто засунутый целиков в Теханалист выдает
1 Функция
2 Тип
3 Класс
4 Объект
Начало книги дает
1 Язык
2 Программа
3 Тип
4 Программирование
5 Класс
Реферат начала из куска в 31 килобайт
За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов.
Используя определения новых типов, точно отвечающих концепциям
приложения, программист может разделять разрабатываемую программу на
легко поддающиеся контролю части.
Классы обеспечивают сокрытие данных,
гарантированную инициализацию данных, неявное преобразование типов для
типов, определенных пользователем, динамическое задание типа,
контролируемое пользователем управление памятью и механизмы перегрузки
операций.
В языке есть также
усовершенствования, не связанные непосредственно с классами, включающие
в себя символические константы, inline-подстановку функций, параметры
функции по умолчанию, перегруженные имена функций, операции управления
свободной памятью и ссылочный тип.
Имеющаяся на
текущий момент реализация языка будет идти в большинстве систем,
поддерживающих C. Из С++ программ можно использовать C библиотеки, и с
С++ можно использовать большую часть инструментальных средств,
поддерживающих программирование на C. Эта книга предназначена главным
образом для того, чтобы помочь серьезным программистам изучить язык и
применять его в нетривиальных проектах.
Во второй главе
описаны средства определения новых типов в С++, начинающие могут
отложить более подробное изучение этого до того, как прочтут Главы 2, 3 и 4.
В Главах 2, 3 и 4 описываются средства С++, не входящие в определение
новых типов: основные типы, выражения и структуры управления в С++
программах.
В Главах 5, 6 и 7 описываются средства С++ по описанию новых типов,
особенности языка, не имеющие эквивалента в C. В Главе 5 приводится
понятие базового класса, и показывается, как можно инициализировать
объекты типа, определяемого пользователем, обращаться к ним и, наконец,
убирать их. В Главе 6 объясняется, как для определяемого пользователем
типа определять унарные и бинарные операции, как задавать преобразования
между типами, определяемыми пользователем, и как как задавать то, каким
образом должно обрабатываться каждое создание, уничтожение и копирование
значения определяемого пользователем типа.
Глава 7 описывает концепцию
производных классов, которая позволяет программисту строить более
сложные классы из более простых, обеспечивать альтернативные интерфейсы
класса и работать с объектами эффективно и с гарантией типа в тех
ситуациях, когда типы объектов не могут быть известны на стадии компиляции.
Язык, описанный в этой книге, – это «чистый С++», но
имеющиеся на текущий момент компиляторы реализуют большое число
«анахронизмов» (описанных в #с.15.3), которые должны способствовать
переходу от C к С++.
В качестве источника упражнений к Главам 2-4 можно
использовать любую книгу по C. У Ахо и др. [1] приведено большое
количество общих структур данных и алгоритмов в терминах абстрактных
типов данных.
Однако языку, который в этой книге использовался, недостает
как функций членов, так и производных классов.
С++ проектировался для использования в довольно традиционной среде
компиляции и выполнения, среде программирования на C в системе UNIX.
Еще одним источником вдохновения послужил
язык Simula67 [2,3], из него была позаимствована концепция класса
(вместе с производными классами и функциями членами).
Базовый язык, C подмножество
С++, спроектирован так, что имеется очень близкое соответствие между его
типами, операциями и операторами и компьютерными объектами, с которыми
непосредственно приходится иметь дело: числами, символами и адресами.
В С++ используются те же последовательности вызова и возврата из
функций, что и в C. В тех случаях, когда даже этот довольно эффективный
механизм является слишком дорогим, С++ функция может быть подставлена
inline, удовлетворяя, таким образом, соглашению о записи функций без
дополнительных расходов времени выполнения.
С++ еще более выразителен, но чтобы достичь
этой выразительности, программист должен уделить больше внимания типам
объектов.
Когда известны типы объектов, компилятор может правильно
обрабатывать выражения, тогда как в противном случае программисту
пришлось бы задавать действия с мучительными подробностями.
Знание типов
объектов также позволяет компилятору обнаруживать ошибки, которые в
противном случае остались бы до тестирования.
Заметьте, что
использование системы типов для того, чтобы получить проверку параметров
функций, защитить данные от случайного искажения, задать новые операции
и т.д., само по себе не увеличивает расходов по времени выполнения и памяти.
В этой книге особый акцент делается на методах создания универсальных
средств, полезных типов, библиотек и т.д. Эти средства пригодятся как
тем программистам, которые пишут небольшие программы, так и тем, которые
пишут большие.
Кроме того, поскольку все нетривиальные программы состоят
из большого числа полунезависимых частей, методы написания таких частей
пригодятся и системным, и прикладным программистам.
С++ программа, описывающая типы
параметров функций, использующая классы и т.д., обычно немного короче
эквивалентной C программы, в которой эти средства не используются.
Язык программирования служит двум связанным между собой целям: он дает
программисту аппарат для задания действий, которые должны быть
выполнены, и формирует концепции, которыми пользуется программист,
размышляя о том, что делать.
По этой причине ограничивать свойства языка только целями
исключения ошибок программиста в лучшем случае опасно.
В идеальном случае подход к разработке программы делится на три части:
вначале получить ясное понимание задачи, потом выделить ключевые идеи,
входящие в ее решение, и наконец выразить решение в виде программы.
Однако подробности задачи и идеи решения часто становятся ясны только в
результате попытки выразить их в виде программы – именно в этом случае
имеет значение выбор языка программирования.
В большинстве разработок имеются понятия, которые трудно представить в
программе в виде одного из основных типов или как функцию без
ассоциированных с ней статических данных.
Ключом к написанию хорошей программы является разработка таких
классов, чтобы каждый из них представлял одно основное понятие.
Проще всего иметь дело с такими понятиями, которые имеют традиционную
математическую форму: числа всех видов, множества, геометрические фигуры
и т.п. На самом деле, следовало бы иметь стандартные библиотеки классов,
представляющих такие понятия, но к моменту написания это не имело места.
Для определения набора действий для самой общей интерпретации понятия
(базового класса) часто можно использовать виртуальные функции (#7.2.8).
Если вы можете организовать понятия программы только в виде общего графа
(не дерева или ациклического направленного графа), и если вы не можете
локализовать взаимные зависимости, то вы, по всей видимости, попали в
затруднительное положение, из которого вас не выручит ни один язык
программирования.
Напомню, что большую часть программирования можно легко и очевидно
выполнять, используя только простые типы, структуры данных, обычные
функции и небольшое число классов из стандартной библиотеки.
Отв: Призрак бродит по Либрусеку
ГВАРХ!. Нафига столько текста?
Страницы