О чем не пишут в книгах по delphi
О чём не пишут в книгах по Delphi
Рассмотрены малоосвещённые вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные механизмы их работы, особенности для протоколов TCP и UDP и др. Большое внимание уделено разбору ситуаций возникновения ошибок и получения неверных результатов в «простом и правильном» коде. Отдельно рассмотрены особенности работы с целыми, вещественными и строковыми типами данных, а также приведены примеры неверных результатов, связанных с ошибками компилятора, VCL и др. Для каждой из таких ситуаций предложены методы решения проблемы. Подробно рассмотрен синтаксический анализ в Delphi на примере арифметических выражений. Многочисленные примеры составлены с учётом различных версий: от Delphi 3 до Delphi 2007. Прилагаемый компакт-диск содержит примеры из книги.
□ Елене Филипповой, создательнице и бессменному главному администратору сайта «Королевство Delphi».
□ Алексею Ковязину (российское отделение CodeGear) за помощь в выпуске этой книги.
□ Юрию Зотову, натолкнувшему меня на идею четвертой главы и некоторых разделов первой и третьей глав.
□ Многочисленным посетителям сайта «Королевство Delphi», при общении с которыми выяснялись интересные факты и рождались идеи, нашедшие себе место в этой книге.
О чём не пишут в книгах по Delphi скачать pdf бесплатно
Согласно многочисленным исследованиям пользовательское раздражение сильно возрастает, если скорость загрузки страницы превышает 8–10 секунд безо всякого уведомления пользователя о процессе загрузки. Последние работы в этой области показали, что пользователи с широкополосным доступом еще менее терпимы к задержкам при загрузке веб-страниц по сравнению с пользователями с более узким каналом.
В проведенном в 2007 году опросе было установлено, что 33% пользователей скоростного соединения не хотят ждать при загрузке страницы более 4 секунд, при этом 43% пользователей не ждут более 6 секунд. В данном случае имеется в виду, что пользователь в большинстве случаев покинет сайт, если в течение 5–10 секунд будет видеть вместо него белый экран в браузере.
1 РАЗРАБОТАН Всероссийским научно-исследовательским институтом стандартизации (ВНИИстандарт) Госстандарта России
ВНЕСЕН Техническим комитетом по стандартизации ТК 22 «Информационная технология»
2 ПРИНЯТ И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 23 декабря 1999 г. № 675-ст
3 Настоящий стандарт содержит полный аутентичный текст международного стандарта ИСО/МЭК 12207-95 «Информационная технология. Процессы жизненного цикла программных средств»
Стандарт подготовлен на основе применения аутентичного текста международного стандарта ИСО/МЭК 9126-91 «Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению»
Information technology. Software product evaluation. Quality characteristics and guidelines for their use.
Software for military systems. The order of creating
Unified system for program documentation. Indexing of programs and program documents
United system for program documentation. Technical specification for development. Requirements to contents and form of presentation
Настоящий стандарт устанавливает порядок построения и оформления технического задания на разработку программы или программного изделия для вычислительных машин, комплексов и систем независимо от их назначения и области применения.
Стандарт полностью соответствует СТ СЭВ 1627-79.
Переиздание (Ноябрь 1987 г.) с Изменением № 1, утвержденным в июле 1981 г (ИУС 7-81)
Эта книга научит вас, как разрабатывать программное обеспечение для платформы J2ME компании «Sun Microsystems». Эта книга придерживается стиля учебного пособия, это не справочное руководство.
Цель — дать вам твердую основу в понятиях и техниках, которая даст вам возможность решиться на самостоятельную разработку качественных приложений.
Русская идея переживает сегодня второе рождение, становится культурной реальностью нашего времени. Одни считают ее философией будущего. Иные относятся, напротив, отрицательно. Чтобы судить о ней, ознакомимся с сутью дела.
Чем не является русская идея? Подчас уверяют, что русская идея — «идеология русского империализма»[1]. Для того, чтобы придерживаться этого взгляда, не обязательно быть эмигрантом «третьей волны». На страницы бывшего «Коммуниста» читаем аналогичное: «…»Русская идея» — в значительной степени государственная имперская идея»[2]
Схизма, разделившая христиан на православных и католиков, резко противопоставила Восток – Западу, греков – римлянам и латынь – греческому. Древние Греция и Рим давно стали достоянием античной истории. Но в церковной жизни они – вполне узнаваемые в православии и католичестве – продолжают существовать доныне.
И связано это вовсе не с языком богослужения, ибо греческий язык на христианском Востоке в течение всего уходящего тысячелетия сохранялся только у греков, а латынь и вообще почти перестала использоваться католиками и даже не изучается теперь в большинстве семинарий. Это связано с самим типом культуры, которую унаследовали современные христиане от своих предков.
Почитание Марии Девы (именно так названа она в Никео-Константинопольском Символе веры) началось уже в I в. н.э., о чем свидетельствует текст Евангелия от Луки, где присутствуют такие чисто молитвенные обращения к Марии, как: «радуйся, Благодатная»; «Ты обрела благодать у Бога»; «благословенна Ты в женах»; «благословен Плод чрева Твоего»: «блаженна поверившая»: «блаженно чрево» и т. п. Мария, sub tuum praesidium («под Твою защиту») которой, как поется в одном из древнейших христианских гимнов, известном как на Западе, так и в Византии (а, следовательно, и на Руси), прибегают христиане, открывает для человека «двери милосердия». Она наставляет его на стези спасения и избавляет своими молитвами от всякой нечистоты. Выступает как Избранная (по-славянски – Взбранная) Воевода, Нескверная, Неблазная (то есть Непорочная), Нетленная, Пречистая, Чистая Дева и т. п. О том, почему именно Марии посвящено так много молитв, хорошо говорит французский святой Луи Гриньон де Монфор, рассуждающий примерно так: Христос пришел к людям через Марию. На дороге в каждую душу и сегодня Он повторяет тот же самый путь, то есть приходит в сердце каждого через Марию как «благословенный Плод чрева Твоего», о чем говорится в молитве «Богородице Дево, радуйся».
…о некоторых замечаниях, которые встречаются в мыслях Блеза Паскаля, и попытаться сделать на сегодняшний вечер этого французского мыслителя, физика и математика, богослова и писателя нашим с вами собеседником. Однажды Паскаль заметил: «Если бы существовала только наша религия, то Бог был бы слишком явен, как и в том случае, если бы мученики существовали среди последователей только нашей религии». Затем в разных местах его книг и записок эта мысль будет повторена неоднократно. Действительно, если бы все христиане были мудры и кротки, честны и святы, добросердечны и открыты, а все представители других религий, наоборот, были бы злобными, отвратительными, бесчестными и т.д., всё было бы очень просто, каждый из нас мог бы легко убедиться в том, что нельзя не быть христианином, каждый из нас, глядя на эту картину, мог бы легко понять… понять‹обрыв записи› в результате своих собственных наблюдений понять умом, не включая в это понимание сердца, что христианство – это действительно настоящая религия, вера в Бога истинного и путь к Нему, а что касается всех остальных религий, то это нелепые человеческие выдумки и т.д. но на самом деле всё обстоит не так. Всё обстоит гораздо сложнее. Среди язычников(например, Сократ) и среди представителей других религий (например, Ганди) есть удивительные праведники и люди огромной внутренней чистоты. И не только Сократ и Ганди, но Марк Аврелий, например, ещё со своей удивительной книгой «Наедине с самим собой» и вообще вся стоическая философия, Клеант, например, о котором рассказывает Плутарх, что ночью этот замечательный мыслитель и философ молол муку и пёк хлеб для того, чтобы заработать на жизнь, или поливал, как подёнщик, огород какого-то богатого человека только для того, чтобы днём заниматься философией и писать свои философские труды. Плутарх патетически восклицает: «Он той же самой рукой, какой писал свои трактаты о Луне и звёздах, о Солнце и небе, – этой же рукой он молол муку и пёк хлеб по ночам!» Человек жил чистой и удивительной жизнью, и, конечно же, жизнь его достойна подражания. А был он язычником. А Сократ, которого мы не напрасно называем «совестью человечества»? Сократ – человек удивительной внутренней честности, удивительной простоты. Сократ, поставивший людей не только своего времени, но всех следующих без исключения поколений, вплоть до наших современников перед самыми важными вопросами жизни, перед проблемами честности, верности и т.д. Как можно сказать, что Сократ не заслуживает величайшего уважения? А ведь язычник. А среди христиан есть люди страшные, безнравственные, злые… Не буду перечислять, достаточно вспомнить одного Иоанна Грозного, который умудрялся совершать чудовищные жестокости и в то же самое время не расставался с Псалтырью и молитвословом.
О чем не пишут в книгах по delphi
А.Б. Григорьев О чём не пишут в книгах по Delphi
□ Елене Филипповой, создательнице и бессменному главному администратору сайта «Королевство Delphi».
□ Алексею Ковязину (российское отделение CodeGear) за помощь в выпуске этой книги.
□ Юрию Зотову, натолкнувшему меня на идею четвертой главы и некоторых разделов первой и третьей глав.
□ Многочисленным посетителям сайта «Королевство Delphi», при общении с которыми выяснялись интересные факты и рождались идеи, нашедшие себе место в этой книге.
□ Товарищу Witchking за сканирование
□ Товарищу DarkArt за подготовку электронного варианта
Среда программирования Delphi заслуженно приобрела свою популярность. Этот удобный и красивый инструмент, основанный на не менее красивом языке Паскаль, первым избавил программиста от рутинных операций, сохранив при этом гибкость, присущую универсальным языкам программирования. Не удивительно, что об этой среде написано много книг, а в Интернете можно найти множество различных сайтов, посвященных Delphi.
Автор данной книги с 1999 года является постоянным посетителем (а с 2004 года — еще и модератором) сайта «Королевство Delphi» (www.delphikingdom.ru; подробнее этот сайт описан в Приложении 1), одного из самых известных русскоязычных ресурсов по Delphi. За это время изучено, какие вопросы интересуют посетителей сайта и какие ответы они хотели бы получить. Наблюдения показывают, что существует целый ряд тем, традиционно вызывающих большой интерес, но информацию по которым найти сложно. Авторы книг по Delphi стараются как можно быстрее перейти к описанию возможностей различных библиотек, оставляя в стороне другие важные вопросы.
«За бортом» остается множество тем, касающихся более низкоуровневых средств, которые в большинстве своем неплохо документированы и описаны в книгах, проиллюстрированы готовыми примерами, которые, правда, обычно даются на C++. Конечно, немного опыта — и код переведен с C++ на Delphi. Только обидно программировать в Delphi, никак не задействуя ее высокоуровневые библиотеки — хочется как-то «сшить» гибкость низкоуровневых вещей и удобство библиотек, использовав библиотеки везде, где это возможно, а низкоуровневый код — только там, где без него никак не обойтись. И вот как раз по этим вопросам и наблюдается острая нехватка информации.
Природа не терпит пустоты, поэтому в Интернете время от времени появляются рекомендации по поводу того, как же все-таки «впрячь в одну упряжку» библиотеки и низкоуровневый код. Но эти советы, за редким исключением, страдают тем, что дают готовое решение с минимальными объяснениями, почему надо делать это именно так (иногда авторы этих рекомендаций при всем желании не смогли бы дать такое объяснение, т.к. сами дошли до этого «методом тыка»). Так что такие советы могут оказаться очень полезными в конкретной ситуации, но не дают общего понимания проблемы.
Эта книга призвана заполнить информационный вакуум по некоторым из таких вопросов. Но самое главное — это то, что мы здесь принципиально будем избегать изложения в стиле «делай так, и будет тебе счастье», т.е. уклон будет не в сторону готовых рецептов, а в сторону объяснения, как это все устроено, чтобы читатель потом сам был в состоянии искать решения для своих проблем. Для этого мы будем разбирать стандартные средства Delphi с позиции «а как оно все работает».
Первая глава книги посвящена интеграции библиотеки VCL и Windows API, прежде всего той части Windows API, которая управляет окнами на экране. Не секрет, что в VCL отсутствуют многие возможности по управлению окнами, которые предоставляет операционная система Windows, но их можно задействовать и в VCL-приложении, если знать, как и куда можно вставить код, использующий API, так, чтобы это не нарушило работу VCL. В первой главе даются базовые сведения о Windows API и о том, как VCL использует API. Здесь приведен ряд примеров программ различной степени сложности, которые демонстрируют методы применения Windows API совместно с VCL в различных ситуациях. Особое внимание уделяется тому, как использовать Windows API, не нарушая работу VCL.
Вторая глава посвящена применению сокетов в Delphi. Сокеты — это самые низкоуровневые сетевые средства Windows, своего рода ассемблер сетевого программирования. Они хорошо документированы, но из-за обилия возможностей эта документация оказывается практически «неподъемной» для человека, который только-только начал знакомится с сокетами и которому не нужны все эти возможности, а требуется просто научиться передавать данные с помощью TCP/IP. Книг по сокетам очень мало, а по использованию сокетов в Delphi — вообще ни одной. Между тем сокеты в Delphi имеют свою специфику из-за отличий языка С, на который ориентирована библиотека сокетов, и Delphi: макросы заменены функциями, изменены параметры некоторых функций, определения типов приспособлены к возможностям Delphi. Кроме того, стандартный модуль Delphi для импорта функций из библиотеки сокетов импортирует библиотеку не полностью и содержит некоторые неточности. Все это делает освоение сокетов «с нуля» очень сложным делом. Вторая глава книги ориентирована на человека, который не имеет опыта сетевого программирования и не знаком с терминологией. Даются все необходимые определения и пояснения, чтобы можно было полностью понять, как работают примеры, но при этом читатель не перегружается избыточной на данном этапе информацией. Попутно излагаются особенности работы с сокетами, присущие именно Delphi. После прочтения данной главы читатель получает достаточно полное представление о протоколах стека TCP/IP и об основных режимах работы сокетов, и после этого способен дальше читать документацию самостоятельно.
ForCoder
Навазние: О чем не пишут в книгах по Delphi
Автор: А. Б. Григорьев
Издательство:
Год: 2008
Страниц: 576
Язык: Русский
Размер: 69
Формат: pdf
Описание книги О чем не пишут в книгах по Delphi:
Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP и др.
Большое внимание уделено разбору ситуаций возникновения ошибок и получения неверных результатов в «простом и правильном» коде. Отдельно рассмотрены особенности работы с целыми, вещественными и строковыми типами данных, а также приведены примеры неверных результатов, связанных с ошибками компилятора, VCL и др. Для каждой из таких ситуаций предложены методы решения проблемы.
Очень часто книги ориентированы либо на полных чайников (как кидать компоненты на форму), либо на крутых профи. При этом совершенно неохваченным остается круг тех людей, которые компоненты на форму кидать уже научились, но хотят развиваться дальше. Данная книга как раз и заполняет этот вакуум. Написано о серьезных вещах, но достаточно простым и понятным языком.
Подробно рассмотрен синтаксический анализ в Delphi на примере арифметических выражений. Многочисленные примеры составлены с учетом различных версий: от Delphi 3 до Delphi 2007.
Прилагаемый компакт-диск содержит примеры из книги.
11,055 просмотров всего, 1 просмотров сегодня
О чём не пишут в книгах по Delphi
Рассмотрены малоосвещённые вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные механизмы их работы, особенности для протоколов TCP и UDP и др. Большое внимание уделено разбору ситуаций возникновения ошибок и получения неверных результатов в «простом и правильном» коде. Отдельно рассмотрены особенности работы с целыми, вещественными и строковыми типами данных, а также приведены примеры неверных результатов, связанных с ошибками компилятора, VCL и др. Для каждой из таких ситуаций предложены методы решения проблемы. Подробно рассмотрен синтаксический анализ в Delphi на примере арифметических выражений. Многочисленные примеры составлены с учётом различных версий: от Delphi 3 до Delphi 2007.
Список литературы 160
А. Б. Григорьев
О чём не пишут в книгах по Delphi
Елене Филипповой, создательнице и бессменному главному администратору сайта «Королевство Delphi».
Алексею Ковязину (российское отделение CodeGear) за помощь в выпуске этой книги.
Юрию Зотову, натолкнувшему меня на идею четвертой главы и некоторых разделов первой и третьей глав.
Многочисленным посетителям сайта «Королевство Delphi», при общении с которыми выяснялись интересные факты и рождались идеи, нашедшие себе место в этой книге.
Товарищу Witchking за сканирование
Товарищу DarkArt за подготовку электронного варианта
Введение
Среда программирования Delphi заслуженно приобрела свою популярность. Этот удобный и красивый инструмент, основанный на не менее красивом языке Паскаль, первым избавил программиста от рутинных операций, сохранив при этом гибкость, присущую универсальным языкам программирования. Не удивительно, что об этой среде написано много книг, а в Интернете можно найти множество различных сайтов, посвященных Delphi.
Природа не терпит пустоты, поэтому в Интернете время от времени появляются рекомендации по поводу того, как же все-таки «впрячь в одну упряжку» библиотеки и низкоуровневый код. Но эти советы, за редким исключением, страдают тем, что дают готовое решение с минимальными объяснениями, почему надо делать это именно так (иногда авторы этих рекомендаций при всем желании не смогли бы дать такое объяснение, т.к. сами дошли до этого «методом тыка»). Так что такие советы могут оказаться очень полезными в конкретной ситуации, но не дают общего понимания проблемы.
Первая глава книги посвящена интеграции библиотеки VCL и Windows API, прежде всего той части Windows API, которая управляет окнами на экране. Не секрет, что в VCL отсутствуют многие возможности по управлению окнами, которые предоставляет операционная система Windows, но их можно задействовать и в VCL-приложении, если знать, как и куда можно вставить код, использующий API, так, чтобы это не нарушило работу VCL. В первой главе даются базовые сведения о Windows API и о том, как VCL использует API. Здесь приведен ряд примеров программ различной степени сложности, которые демонстрируют методы применения Windows API совместно с VCL в различных ситуациях. Особое внимание уделяется тому, как использовать Windows API, не нарушая работу VCL.
Описание книги «О чём не пишут в книгах по Delphi»
Описание и краткое содержание «О чём не пишут в книгах по Delphi» читать бесплатно онлайн.
Рассмотрены малоосвещённые вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные механизмы их работы, особенности для протоколов TCP и UDP и др. Большое внимание уделено разбору ситуаций возникновения ошибок и получения неверных результатов в «простом и правильном» коде. Отдельно рассмотрены особенности работы с целыми, вещественными и строковыми типами данных, а также приведены примеры неверных результатов, связанных с ошибками компилятора, VCL и др. Для каждой из таких ситуаций предложены методы решения проблемы. Подробно рассмотрен синтаксический анализ в Delphi на примере арифметических выражений. Многочисленные примеры составлены с учётом различных версий: от Delphi 3 до Delphi 2007. Прилагаемый компакт-диск содержит примеры из книги.
О чём не пишут в книгах по Delphi
□ Елене Филипповой, создательнице и бессменному главному администратору сайта «Королевство Delphi».
□ Алексею Ковязину (российское отделение CodeGear) за помощь в выпуске этой книги.
□ Юрию Зотову, натолкнувшему меня на идею четвертой главы и некоторых разделов первой и третьей глав.
□ Многочисленным посетителям сайта «Королевство Delphi», при общении с которыми выяснялись интересные факты и рождались идеи, нашедшие себе место в этой книге.
□ Товарищу Witchking за сканирование
□ Товарищу DarkArt за подготовку электронного варианта
Среда программирования Delphi заслуженно приобрела свою популярность. Этот удобный и красивый инструмент, основанный на не менее красивом языке Паскаль, первым избавил программиста от рутинных операций, сохранив при этом гибкость, присущую универсальным языкам программирования. Не удивительно, что об этой среде написано много книг, а в Интернете можно найти множество различных сайтов, посвященных Delphi.
Автор данной книги с 1999 года является постоянным посетителем (а с 2004 года — еще и модератором) сайта «Королевство Delphi» (www.delphikingdom.ru; подробнее этот сайт описан в Приложении 1), одного из самых известных русскоязычных ресурсов по Delphi. За это время изучено, какие вопросы интересуют посетителей сайта и какие ответы они хотели бы получить. Наблюдения показывают, что существует целый ряд тем, традиционно вызывающих большой интерес, но информацию по которым найти сложно. Авторы книг по Delphi стараются как можно быстрее перейти к описанию возможностей различных библиотек, оставляя в стороне другие важные вопросы.
«За бортом» остается множество тем, касающихся более низкоуровневых средств, которые в большинстве своем неплохо документированы и описаны в книгах, проиллюстрированы готовыми примерами, которые, правда, обычно даются на C++. Конечно, немного опыта — и код переведен с C++ на Delphi. Только обидно программировать в Delphi, никак не задействуя ее высокоуровневые библиотеки — хочется как-то «сшить» гибкость низкоуровневых вещей и удобство библиотек, использовав библиотеки везде, где это возможно, а низкоуровневый код — только там, где без него никак не обойтись. И вот как раз по этим вопросам и наблюдается острая нехватка информации.
Природа не терпит пустоты, поэтому в Интернете время от времени появляются рекомендации по поводу того, как же все-таки «впрячь в одну упряжку» библиотеки и низкоуровневый код. Но эти советы, за редким исключением, страдают тем, что дают готовое решение с минимальными объяснениями, почему надо делать это именно так (иногда авторы этих рекомендаций при всем желании не смогли бы дать такое объяснение, т.к. сами дошли до этого «методом тыка»). Так что такие советы могут оказаться очень полезными в конкретной ситуации, но не дают общего понимания проблемы.
Эта книга призвана заполнить информационный вакуум по некоторым из таких вопросов. Но самое главное — это то, что мы здесь принципиально будем избегать изложения в стиле «делай так, и будет тебе счастье», т.е. уклон будет не в сторону готовых рецептов, а в сторону объяснения, как это все устроено, чтобы читатель потом сам был в состоянии искать решения для своих проблем. Для этого мы будем разбирать стандартные средства Delphi с позиции «а как оно все работает».
Первая глава книги посвящена интеграции библиотеки VCL и Windows API, прежде всего той части Windows API, которая управляет окнами на экране. Не секрет, что в VCL отсутствуют многие возможности по управлению окнами, которые предоставляет операционная система Windows, но их можно задействовать и в VCL-приложении, если знать, как и куда можно вставить код, использующий API, так, чтобы это не нарушило работу VCL. В первой главе даются базовые сведения о Windows API и о том, как VCL использует API. Здесь приведен ряд примеров программ различной степени сложности, которые демонстрируют методы применения Windows API совместно с VCL в различных ситуациях. Особое внимание уделяется тому, как использовать Windows API, не нарушая работу VCL.
Вторая глава посвящена применению сокетов в Delphi. Сокеты — это самые низкоуровневые сетевые средства Windows, своего рода ассемблер сетевого программирования. Они хорошо документированы, но из-за обилия возможностей эта документация оказывается практически «неподъемной» для человека, который только-только начал знакомится с сокетами и которому не нужны все эти возможности, а требуется просто научиться передавать данные с помощью TCP/IP. Книг по сокетам очень мало, а по использованию сокетов в Delphi — вообще ни одной. Между тем сокеты в Delphi имеют свою специфику из-за отличий языка С, на который ориентирована библиотека сокетов, и Delphi: макросы заменены функциями, изменены параметры некоторых функций, определения типов приспособлены к возможностям Delphi. Кроме того, стандартный модуль Delphi для импорта функций из библиотеки сокетов импортирует библиотеку не полностью и содержит некоторые неточности. Все это делает освоение сокетов «с нуля» очень сложным делом. Вторая глава книги ориентирована на человека, который не имеет опыта сетевого программирования и не знаком с терминологией. Даются все необходимые определения и пояснения, чтобы можно было полностью понять, как работают примеры, но при этом читатель не перегружается избыточной на данном этапе информацией. Попутно излагаются особенности работы с сокетами, присущие именно Delphi. После прочтения данной главы читатель получает достаточно полное представление о протоколах стека TCP/IP и об основных режимах работы сокетов, и после этого способен дальше читать документацию самостоятельно.
Третья глава посвящена ситуациям, в которых стандартные средства ведут себя не так, как этого ожидает программист. Иногда это объясняется ошибками в реализации этих средств, но чаще тем, что программист просто не знает некоторых особенностей данной реализации. Конечно, детально изучив документацию, можно не только дать объяснение ошибкам, но и научиться предсказывать, где они могут возникнуть, но такой метод имеет очевидные сложности. В третьей главе выбран другой подход — «от ошибки». Мы сначала будем рассматривать ситуацию, в которой возникает ошибка, а потом объяснять, какие особенности реализации приводят к этому. Такой порядок изложения позволяет одновременно и рассказать о том, как соответствующие средства реализованы, и предостеречь от неверного их использования.
Четвертая глава целиком посвящена одному очень популярному в форумах вопросу: как вычислить арифметическое выражение, которое становится известным только во время выполнения программы (т. е., например, у нас есть арифметическое выражение в строковой переменной, а требуется вычислить его значение). С одной стороны, в Интернете можно найти немало самодельных библиотек, решающих эту задачу. Но не все из них работаю достаточно корректно, потому что их авторы зачастую реализуют доморощенные методы анализа выражений, дающие в некоторых случаях сбои. С другой стороны, существует литература, в которой довольно полно изложена формальная теория создания трансляторов. Но эта теория выходит далеко за рамки простого вычисления арифметических выражений и требует соответствующих усилий для ее освоения. Мы же, с одной стороны, ограничимся только той частью теоретических сведений, которая необходима для построения вычислителя, но с другой, — будем этой теории строго следовать, создавая действительно работоспособное решение. И хотя на выходе мы получим несколько вполне работоспособных примеров, не они будут нашей главной целью. Мы будем стремиться к тому, чтобы читатель понял сам принцип построения таких анализаторов и при необходимости смог вносить в них изменения. В дальнейшем это поможет при изучении теории синтаксического анализа по специализированным книгам.
Автор надеется, что книга действительно окажется полезной читателю. Актуальность изложенных в ней тем подтверждается многочисленными вопросами в форумах, а полезность сведений — многочисленными ответами.
Windows API и Delphi
Библиотека VCL, делающая создание приложений в Delphi таким быстрым и удобным, все же не позволяет разработчику задействовать все возможности операционной системы. Полный доступ к ним дает API (Application Programming Interface) — интерфейс, который система предоставляет программам. С его помощью можно получить доступ ко всем документированным возможностям системы.