среда, января 31, 2007

Книга по C в свободном доступе

The C Book. Сама не читала, по слухам старенькая, но хорошая.

суббота, января 27, 2007

C++09

C++0x теперь надо называть C++09. Комитет по стандартизации решил, что новый стандарт C++ будет в 2009. Отступать им уже некуда, C++010 уже не получается из C++0x заменой икса на цифру. Поэтому в 2007 году будут рассматриваться ранее присланные предложения, дорабатываться старые. Новые приниматься не будут. В 2008 финальный документ будет отдан на стандартизацию в ISO. А в 2009 у нас будет новый стандарт.

Чем больше я смотрю на предложения по стандарту и работу над ними, тем больше они мне нравится. Еще по книге D&E видно как Страуструп тщательно подходит к разработке языка. Чтобы ни в коем случае не сломать ничей код. Чтобы обеспечить обратную совместимость, старается не вводить новые ключевые слова. Каждое новое предложение по языку тщательно обдумывается и рассматривается со всех сторон. А не сломает ли его претворение в жизнь что-либо старое? А не выйдет ли боком в дальнейшем? Можно ли как-то добиться того же самого эффекта без реализации этого предложения? Насколько сложно это будет реализовать разработчикам компиляторов? После прочтения этой книги мое уважение к Страуструпу удвоилось.

Поскольку цель введения нового стандарта - это предоставление программистам более удобного и современного инструмента для работы, а не что-нибудь вроде Порабощения Вселенной, то результат обещает быть хорошим. Многие вещи просто напрашивались. Как например использование ключевого слова volatile для обеспечения доступа к переменной из разных потоков. (Сейчас это не так!) Кстати, когда я писала про C++0x, в комментариях было высказано предположение, что вот, да пока его примут, да пока компиляторы напишут... В VC++2005 volatile уже так и работает. Много внимания уделяется многопоточному программированию. Сейчас для стандартизации рассматривается библиотека: Multithreading API for C++0X - A Layered Approach. Планируется введение ключевого слова atomic для атомарных операций.

После прочтения у меня не было ощущения "ну вот, придется все заново учить". Будет принято много новых полезных вещей, которые облегчат мне работу, в дополнение к уже имеющимся. Будут устранены мелкие шероховатости. Я подумываю разобраться поподробнее с новыми волшебными фичами C++. Чтобы к моменту выхода нового стандарта быть уже во всеоружии. Ну и конечно написать о них несколько постов. Но все это будет чуть позже, когда предложения по стандарту примут более законченный вид.

Ссылки по теме:
State of C++ Evolution
Wikipedia: C++0x
C++09: Proposals by Statuses
Bjarne Stroustrup's homepage

вторник, января 23, 2007

Замечательный художник Морис Эшер

Морис Эшер (Maurits Cornelis Escher 1898 – 1972) был знаменит своей способностью рисовать картины, которые приводят в восторг математиков. При этом сам он никакого специального математического образования не получил. Отсутствие математического образования не мешало ему рисовать платоновы тела, листы Мёбиуса, неевклидовы пространства. Мало того, что это все математически корректно, это все еще и очень красиво.


Змеи

Рыба и чешуя

Передел круга III

Последняя картина, "Передел круга III" изображает гиперболическое пространство. Я как-то давала ссылку на книгу про жизнь в гиперболическом мире "Опрокинутый мир", Кристофер Прист , а теперь вот и картина есть в моей коллекции.

В статье The Mathematical Art of M.C. Escher приводится цитата, по которой можно понять направление творчества Эшера.

In mathematical quarters, the regular division of the plane has been considered theoretically . . . Does this mean that it is an exclusively mathematical question? In my opinion, it does not. [Mathematicians] have opened the gate leading to an extensive domain, but they have not entered this domain themselves. By their very nature thay are more interested in the way in which the gate is opened than in the garden lying behind it.
В математических кругах регулярное разбиение плоскости рассмативается теоретически... Означает ли это, что это исключительно математический вопрос? Я считаю, что нет. [Математики] открыли дверь в огромный мир, но они сами в этот мир не вошли. По своей природе им больше интересно как открывается эта дверь, а не сад, лежащий за ней.


Работы Эшера волнуют умы математиков до сих пор. Предполагаю, еще долго будут волновать. В 2002 году на Слэшдоте активно обсуждалась одна из картин Эшера, "Картинная галерея".


Картина необычна тем, что Эшер нарисовал в серединке белый кружок со своим автографом. Математик Хендрик Ленстра (Hendrik Lenstra) заинтересовался этой картиной и решил достороить середину. Чтобы это сделать картину сначала "размотали", получили обычную картинную галерею, потом дорисовали, потом замотали обратно. Весь процесс с описаниями можно посмотреть здесь Applying mathematics to Escher's Print Gallery и здесь Artful Mathematics: The Heritage of M. C. Escher (.pdf).
Так вот это достраивание на Слэшдоте и обсуждалось. Причем не только с точки зрения математики. Например, там предложили не трогать творения Художника своими грязными руками. Один человек высказал мысль, что именно так выглядит мир изнутри бутылки Клейна.


Бутылка Клейна. Фотография с сайта kleinbottle.com


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


Спирали


Рисующие руки


Ссылки:
Официальный сайт Мориса Эшера. Есть галерея работ, очень рекомендую.
Математическое искусство М.К. Эшера - перевод статьи The Mathematical Art of M.C. Escher
М.К.Эшер: Больше математики, чем кажется на первый взгляд
Escher's Printgallery at Stanford - в Стэнфорде на основе работы, посвященной достраиванию "Картинной галереи", строят свои аналоги этой картины из фотографий. Статья по этому поводу: "Картинная галерея" М.К.Эшера в Стенфорде
Modular Escher построение уравнений для "Картинной галереи".

Updated 24.01.2007
В комментариях подсказывают, что есть еще и книги:
Карл Левитин "Геометрическая рапсодия"

Visual C++ Team Blog

Visual C++ Team Blog - по названию понятно кто пишет и о чем. Унылый-унылый такой.