LINUX.ORG.RU

«Книга Дракона 2», новое издание легендарной книги о компиляторах.

 


0

0

Скоро выйдет второе издание легендарной книги «Компиляторы: принципы, технологии и инструменты». Написал рецензию (больше на обзор, наверное, похоже) на материал, что мне был предоставлен издательством. Скоро книга уйдёт в печать (сейчас активно работает литературный редактор :) ). Но думаю, что такие книги не нуждаются ни в чьих рекомендациях.

>>> Рецензия

Рецензия очень слабая, просто никакая. Автору следует знать, что разработка С++ началась в 80, в октябре 85 уже был промышленный компилятор и книга Стауструпа.

Sun-ch
()
Ответ на: комментарий от anonymous_incognito

> Не знаю как со второй книгой, но по поводу первого издания Страуструп жаловался, что она не совсем верное представление даёт о построении компиляторов, в частности, по его словам, идеи авторов с которыми он общался, привели к проблемам в ранних компиляторах C++.

Страуструп тут авторитет, ога. С его-то поделием.

Gharik
()
Ответ на: комментарий от Gharik

Ясен хрен, что авторитет. В Bell Labs вообще весь цвет ит-индустрии работал и его мнение, как человека придумавшего и написавшего промышенный язык программирования для меня на порядки важнее всяких академических пердунов и прочих студентов типа автора питона.

Sun-ch
()
Ответ на: комментарий от Sun-ch

> В Bell Labs вообще весь цвет ит-индустрии работал и его мнение,

Мало ли что в Bell Labs... автор Promela/SPIN тоже там работал, а у Promela кажется до сих пор неизвестная официальная грамматика языка... как и у C++ ;)

sv75 ★★★★★
()

Новость ни о чём. Пусть сначала выйдет.

ip1981 ☆☆
()
Ответ на: комментарий от Sun-ch

>Ясен хрен, что авторитет. В Bell Labs вообще весь цвет ит-индустрии работал и его мнение, как человека придумавшего и написавшего промышенный язык программирования для меня на порядки важнее всяких академических пердунов и прочих студентов типа автора питона.

В точку! Данное мнение идентично моему.

Demon37 ★★★★
()
Ответ на: комментарий от Demon37

> В точку! Данное мнение идентично моему.

Вам тоже нравится множественное наследование плюсов? :)

sv75 ★★★★★
()
Ответ на: комментарий от anonymous

>Предзаказ доступен? Да. Смотрите на сайте издательства.

>Я вам так скажу: языки уже достигли достаточно высокой отметки >удобства, чтобы не думать о них. Теперь главное - еблибатеки. Чем их >больше, тем быстрее вы пишете функционал. А всякие хвостовые >рекурсии/функциональщину оставьте нищим задротам-теоретикам. Я плачу с ваших слов. Чувствуется явный опыт в написании Hello Wolrd с патчем, добавляющем Goodbye world. Знание описанных в книгу вещей (по крайней мере первых 7 глав) помогает при написании почти любой программы имеющей синтаксический/лексический анализатор. А если писать "еблибатеки", то надо знать алгоритмы ;)

>Обложку испортили! Чем старая, белая с красным драконом и человеком в >доспехах программившим на чугунном компе не устраивала?

Судя по человечку в доспехах, тот тут скрытая реклама Мишлен :)

powerfox
() автор топика
Ответ на: комментарий от marsijanin

На правах издателя книги:

Для России купить книгу можно будет в ozon.ru (где то через 4 недели будут приниматься предварительные заказы) Для Украина, преварительние заказы уже принимаються: http://www.bookmaster.com.ua/Компиляторы-2-книга -дракона-p-2324.html

anonymous
()
Ответ на: комментарий от sv75

>Вам тоже нравится множественное наследование плюсов? :)

Вас заставляют его использовать? К батарее привязывают, если не увидят МН?

anonymous
()
Ответ на: комментарий от tailgunner

>> я и ОС писал, и язык, и оконную библиотеку... просто уссаца, до чего был наивен!

>Ну, это многое объясняет... как, закончил ты "ОС, и язык, и оконную библиотеку"? :D

Ответ, по-моему, очевиден - почили в бозе. :) Как ещё могли закончиться потуги одного-единственного человека в таких "суровых" проектах?

Я не спорю, книга как чтение в транспорте - оч увлекательно, но как применение знаний - ой ли... Кто-то тут выше имеет желание влезть в оптимизатор GCC, так вот я ему скажу - бесполезно. Компиляторами надо либо плотно заниматься, либо не трогать вообще. А наивные попытки скачать исходники и тут же в них что-то исправить - молодческий пингво-синдром.

PS Конечно, зачатки всех трёх проектов были сделаны, но это как ствол дерева - чем выше лезешь, тем шире тебя распирает ветками. :) На все ветки одной головы не хватит.

anonymous
()

"В приложении A можно найти завершённый пример начальной стадии компилятора (на Java). "

Спасибо. Заценим. Жабофобы могут отдыхать.

Bioreactor ★★★★★
()
Ответ на: комментарий от anonymous

>>Просто поверьте старому прогеру - я и ОС писал, и язык, и оконную библиотеку... просто уссаца, до чего был наивен!

>сцылко дай

Во-первых, мой юный друг, ты забыл волшебное слово. А во-вторых, сцылко НА ЧТО? На прожекты 10-летней давности, безвестно померших на секторах дискетки? Когда я это писал, ещё даже гугла не было!
Могу только сказать, что выйти в защищённый режим и переключить задачи у меня получилось. :)

anonymous
()
Ответ на: комментарий от anonymous

> Я не спорю, книга как чтение в транспорте - оч увлекательно, но как применение знаний - ой ли...

> Компиляторами надо либо плотно заниматься, либо не трогать вообще.

Во-первых, не всегда знаешь точно, чем будешь заниматься через несколько лет; во-вторых, знание внутренней кухни компиляторов помогает глубже понять используемый ЯП; ну и в-третьих, иногда компиляторы таки приходится писать (упаси ТНБ, это отнюдь не GCC, но всё же), так что я бы не говорил так резко "либо - либо".

> Конечно, зачатки всех трёх проектов были сделаны

А ты, упрямый O_o Обычно людям хватает одного "мегапроекта", чтобы начать оценить себя объективно 8)

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> Насчет функциональных языков ... ты даже не знаешь для чего они применяются.

Ты - тупой ононизмус, пытающийся кидать понты. Речь не о том, где они применяются, а о ширпотребном программинге. Ваши суперпараллельные суперкластеры 99% прогеров даже на картинках не видели! А вот Бейсик каждый хоть раз, да попробовал. :) Основная задача современного прогера - работать быстро. Второе - надёжно. А потом уже скорость, масштабируемость и т.п. (если это вообще нужно)

anonymous
()
Ответ на: комментарий от tailgunner

> Во-первых, не всегда знаешь точно, чем будешь заниматься через несколько лет;

Это не логика. С таким же успехом можно начать изучать икебану.

> во-вторых, знание внутренней кухни компиляторов помогает глубже понять используемый ЯП;

Чушь. ЯП не имеет никакого отношения к кишкам - как КАЖДЫЙ ИМПЛЕМЕНТАТОР РЕШИТ, такие кишки и будут. Одни юзают регистры, другие - виртуальную машину, третьи вообще всё в строках делают... Язык просто НУЖНО ЗНАТЬ. И как опция, разбираться в конкретной реализации, изучая приёмы оптимизации ПОД ДАННУЮ РЕАЛИЗАЦИЮ. Хуже того - все ваши знания бесполезны, если у вас нет исходников.

Ну и вообще, вся внутренняя кухня компилера - дело разработчиков компилера, а нам о прикладухе думать надо.

anonymous
()
Ответ на: комментарий от tailgunner

>> Конечно, зачатки всех трёх проектов были сделаны

>А ты, упрямый O_o Обычно людям хватает одного "мегапроекта", чтобы начать оценить себя объективно 8)

Я не пытался сделать невозможное - я учился программингу. Что, теперь из-за одной ошибки уходить в управдомы? Будет подходящая фирма - и компилерами снова займусь! Вот там-то упорство и потребуется.

anonymous
()
Ответ на: комментарий от tailgunner

>во-вторых, знание внутренней кухни компиляторов помогает глубже понять используемый ЯП

Лучше изучить теоретическую основу, какую-нибудь "теорию формальных языков", а изучать как устроен gcc, тоже самое как детально изучать как устроен чип core-duo, очень сложно и как программисту нахрен не надо.

Sun-ch
()
Ответ на: комментарий от anonymous

> Ты - тупой ононизмус, пытающийся кидать понты. Речь не о том, где они применяются, а о ширпотребном программинге. Ваши суперпараллельные суперкластеры 99% прогеров даже на картинках не видели!

А ядрышек внутри cpu то все больше и больше, уже и 4-х ядерные перешли из разряда экзотики в ширпотреб. В ширпотреб рвутся и вообще существенно numa-архитектуры. Cell в приставках, CUDA в совеременных жефорсах, на подходе вообще десятки ядер на проц и традиционным мейнстримом все это кодить становится сложнее и сложнее, даже для двухядерников софт толком не осиливают писать. Мейнстримщиков хватает лишь с горем пополам накодить глюковатые параллельные потоки для тривиально распараллеливающихся задач.

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

//туповатый ононизмус

P.S. Я не спорю, что библиотеки очень важны, но они все-таки внешние по отношению к языку сущности, не надо их смешивать.

anonymous
()
Ответ на: комментарий от anonymous

>> Во-первых, не всегда знаешь точно, чем будешь заниматься через несколько лет;

> Это не логика. С таким же успехом можно начать изучать икебану.

Твоя логика неубиваема :D Может, тебе сменить профессию? ;)

> ЯП не имеет никакого отношения к кишкам - как КАЖДЫЙ ИМПЛЕМЕНТАТОР РЕШИТ, такие кишки и будут. Одни юзают регистры, другие - виртуальную машину

Ыыыы... ты таки почитай книгу, она хорошая

> Ну и вообще, вся внутренняя кухня компилера - дело разработчиков компилера, а нам о прикладухе думать надо.

Компилятор - тоже прикладная программа :) И бывает так, что в большой прикладной программе живет небольшой компилятор :)

tailgunner ★★★★★
()
Ответ на: комментарий от sv75

Как сказал Гради Буч: Множественное наследование, это как парашют. Вы не пользуетесь им каждый день, но бывает очень трудно выйти из ситуации, когда оно действительно необходимо, но нет под рукой.

NonHuman ★★★
()
Ответ на: комментарий от anonymous

> Просто поверьте старому прогеру - я и ОС писал, и язык, и оконную библиотеку... просто уссаца, до чего был наивен!

Старый прогер, дай сцылу на исходники ОС/компилятора/библиотеки. Посмеятцо захотелось.

anonymous
()
Ответ на: комментарий от anonymous

Многоштучность (Re: «Книга Дракона 2», новое издание легендарной книги о компиляторах.)

> А ядрышек внутри cpu то все больше и больше, уже и 4-х ядерные
> перешли из разряда экзотики в ширпотреб.
[]
> В этих условиях нехило подняться может кто успеет просечь фишку
> и осилит создавать действительно параллельно работающий софт.
> Но для этого C++, C# и Java надо сразу в помойку отправить.

Для тех кто в танке, есть сообщение почти 20-й
давности: "Транспутер (wikiped/Transputer)".
-- 
-o--=O`C
 #oo'L O
<___=E M

olecom
()
Ответ на: комментарий от Sun-ch

>Лучше изучить теоретическую основу, какую-нибудь "теорию формальных языков", а изучать как устроен gcc, тоже самое как детально изучать как устроен чип core-duo, очень сложно и как программисту нахрен не надо.

Ога! Правда это трудно объяснить лектору на экзамене, вытащив билет с вопросиком про "core-duo".

anonymous
()

Ну эту книгу можно уже сжечь.

HP
()

чет почитал по ссылкам - бред какой-то

xargs ★★★
()
Ответ на: комментарий от sv75

> Вам тоже нравится множественное наследование плюсов? :)

А Вас заставляют его использовать?

alman ★★★
()
Ответ на: комментарий от anonymous

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

Синхронные IPC, синхронные IPC, синхронные IPC, синхронные IPC, синхронные IPC, синхронные IPC, синхронные IPC, синхронные IPC

> Но для этого C++, C# и Java надо сразу в помойку отправить.

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

alman ★★★
()
Ответ на: комментарий от Sun-ch

> Лучше изучить теоретическую основу, какую-нибудь "теорию формальных языков"

А разве двое из авторов оной книги как раз и не являются классиками приложения ТФЯ к компиляторам (Ахо, Ульман, сужу по воспоминаниям юности?)

sv75 ★★★★★
()
Ответ на: комментарий от sv75

> Нонче в моде асинхронные IPC, смотри флейм про Erlang

URL?

Да и пофиг мне мода. Я уже устал доказывать что знаю как.

Именно асинхронные IPC вызывают нелинейный рост производительности при увеличении числа ядер/процессоров.

alman ★★★
()

После нескольких покупок, выяснилось, что издательство ВильянсПресс - полное гавнище. Такое впечатление, что скупают/переводят текст килограммами. Качество текстов и содержимого книг ужасное. Хороши только обложка и названия книг.

Трижды надо подумать чтоб их книги покупать.

Еще лучше - смотреть лично при покупке каждую главу и оценивать текст. Кстати, часто разные главы переводят разные переводчики, не состыковав термины вообще. Ошибки и опечатки присутсвуют на каждой странице по несколько штук. Это сложно книгами назвать. Белиберда, набор слов, но это не книги.

Люди, будьте бдительны!

xintrea
()
Ответ на: комментарий от anonymous

> Сделай на плюсах(с синхронными IPC :D)

"Реализовать "продвинутую" параллелньную функцию map: функцию (F1), 
которая параллельно применяет другую функцию (F2) к каждому элементу (E)
списка (L1) и потом собирает результаты в новый список (L2)."

void F1( IList L1, IList L2)
{
  while( ! L1.EndOfList() )
  {
     Create_F2( L1, L2 );
  }
}

Надо объяснять как это будет работать? 
Намёк - Create_F2() создаёт нить, точка входа в которую - функция F2. 
Скажешь, где тут синхронные IPC?
На них основаны списки L1 и L2 - любая операция обращения к списку 
организуется через передачу синхронных сообщений.

"Чтобы еще усложнить задачу, функция F1 также должна принимать список 
узлов из кластера (NL), на которые можно распределить вычисления. 
Каждое применение F2 к элементу из L1 должно происходить на случайном 
узле из NL, а результат должен отсылать обратно на узел (N), на 
котором была вызвана функция F1. Если NL - пустой списко, то все 
вычисления должны происходить локально на N."

А вот это уже лениво.

alman ★★★
()
Ответ на: комментарий от anonymous

> Дело не в том, чего и сколько появляется, а сколько ИСПОЛЬЗУЕТСЯ.

Самопальных скриптовых языков ОЧЕНЬ много. И все они используются. В каждом сложном проекте есть как минимум один такой язык. И, что характерно, почти нигде и никогда просто невозможно использовать любой из существующих.

> Главная движущая сила - БИБЛИОТЕКИ, ибо не языком хороша программа, а функциональностью.

Какая там библиотека у языка SQL? А у XPath?

> ЧЁТКО ОСОЗНАЙТЕ, а что вам НЕХВАТАЕТ в существующих языках?

Узкой специализированности. А её так много разной, что на все варианты языков готовых не напасёшься.

> Компиляторы - такая НЕМЕРЯННАЯ и рутинная работа, что интерес к ней пропадает очень быстро.

Враньё. Писать компиляторы и интерпретаторы очень просто. Вообще, это совсем не проблема. Рутина.

> Просто поверьте старому прогеру - я и ОС писал, и язык, и оконную библиотеку...

Да какой ты прогер? Ты ламер.

anonymous
()
Ответ на: комментарий от anonymous

> Основная задача современного прогера - работать быстро. Второе - надёжно.

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

капча: anykes. Это про тебя.

anonymous
()
Ответ на: комментарий от alman

А за такое надо просто убивать. Оверхед на блокировках и в такой дебильной реализации всё убьёт.

anonymous
()
Ответ на: комментарий от anonymous

> А за такое надо просто убивать. Оверхед на блокировках и в такой дебильной реализации всё убьёт.

Какие блокировки? Ты вообще понимаешь о чём речь?

alman ★★★
()
Ответ на: комментарий от anonymous

> Это ты, по ходу, не понимаешь. Двойка тебе.

Мотивировать можешь?

alman ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.