KnigaRead.com/
KnigaRead.com » Документальные книги » Биографии и Мемуары » Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста

Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Питер Сейбел, "Кодеры за работой. Размышления о ремесле программиста" бесплатно, без регистрации.
Перейти на страницу:

По большому счету, именно так и должна решаться головоломка: составляются таблицы, схемы, информация извлекается по крупицам, выдвигается гипотеза. В общем, когда я читаю техническую работу, это такая же сложная задача. Я пытаюсь влезть в голову автора, понять, в чем состоял его замысел. Чем больше вы учитесь читать вещи, написанные другими, тем более способны изобретать что-то свое - так мне кажется.

Мы должны публиковать код. Доступны комментарии Джона Лайонса к 6-й версии UNIX, с исходным кодом. И программы Билла Аткинсо-на теперь находятся в открытом доступе благодаря Apple, и уже скоро мы сможем их прочитать. Это очень хорошо документированный код со множеством новаторских графических алгоритмов.

Сейбел: Конечно, благодаря политике открытого исходного кода у нас сейчас гораздо больше кода для чтения, чем раньше.

Кнут: Да, это так. И по-прежнему каждый может применять разные виды нотации - не стоит читать только тех программистов, которые пишут так же, как и вы.

Библиография

The Art of Computer Programming, Donaid Knuth (Addison-Wesley, 1997).[76]

Beautiful Code: Leading Programmers Explain How They Think, Andy Oram, Greg Wilson (eds.) (O'Reilly, 2007).[77]

Byte, Vol. 6, No. 8, "Smalltalk issue," August 1981.

Code Complete, Steve McConnell (Microsoft Press, 1993).[78]

Compiling with Continuations, Andrew W. Appel (Cambridge University Press, 1992).

The Design and Analysis of Computer Algorithms, Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman (Addison-Wesley, 1974).

Design Patterns: Elements of Reusable Object-Oriented Software, Eric Gamma, Richard Helf, Ralph Johnson, and John M. Vlissides (Addison-Wesley Professional, 1994).[79]

A Discipline of Programming, Edsger W. Dijkstra (Prentice Hall, Inc., 1976).

Effective Java, Joshua Bloch (Prentice Hall, 2008).[80]

The Elements of Programming Style, Brian Kernighan and P.J. Plauger (Computing McGraw-Hill, 1978).[81]

Elements of Style, William Strunk and E.B. White (Longman, 1999).

Expert С Programming, Peter van der Linden (Prentice Hall PTR, 1994).

Founders at Work, Jessica Livingston (Apress, 2007).

Hacker's Delight, Hank Warren (Addison-Wesley, 2002).[82]

Higher-Order Perl, Mark Jason Dominus (Morgan Kaufmann, 2005).

Java Concurrency in Practice, Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea (Addison-Wesley, 2006).

Java Puzzlers: Traps, Pitfalls, and Corner Cases, Joshua Bloch and Neil Gafter (Addison-Wesley, 2005).

The Lisp 1.5 Programmer's Manual, John McCarthy (MIT Press, 1962).

Literate Programming, Donald Knuth (Center for the Study of Language and Information, 1992).

Machine Intelligence 1, N.L. Collins and Donald Michie (eds.) (Oliver and Boyd, 1967).

Machine Intelligence 2, Ella Dale and Donald Michie (eds.) (Oliver and Boyd, 1968).

Machine Intelligence 3, Donald Michie (ed.) (Edinburgh University Press, 1968).

Machine Intelligence 4, Bernard Meltzer and Donald Michie (eds.) (Edinburgh University Press, 1969).

Magic House of Numbers, Irving Adler (HarperCollins, 1974).

"META II a Syntax-Oriented Compiler Writing Language," D.V. Schorre in Proceedings of the 1964 19th ACM national conference, (ACM, 1964).

Mindstorms: Children, Computers, and Powerful Ideas, Seymour A. Papert (Basic Books, 1993).

The Mythical Man-Month: Essays on Software Engineering, Frederick P. Brooks (Addison-Wesley Professional, 1995).[83]

Principles of Compiler Design, Alfred Aho and Jeffrey Ullman (Addison-Wesley, 1977).[84]

"Proof of a Program: FIND", C.A.R. Hoare in Communications of the ACM, Vol. 14, Issue 1 (ACM, 1971).

Programming Pearls, Jon Bentley (ACM Press, 1999).

Purely Functional Data Structures, Chris Okasaki (Cambridge University Press, 2008).

A Retargetable С Compiler: Design and Implementation, David Hanson and Christopher Fraser (Addison-Wesley Professional, 1995).

Smalltalk-80: The Interactive Programming Environment, Adele Goldberg (Addison-Wesley, 1983).

Smalltalk-80: The Language & Its Implementation, David Robson and Adele Goldberg (Addison-Wesley, 1983).

Structure and Interpretation of Computer Programs, Harold Abelson and Gerald Jay Sussman (MIT Press, 1996).[85]

TeX: The Program, Donald Knuth (Addison-Wesley, 1986).

The Programming Language LISP: Its Operation and Applications, Edmund Berkeley and Daniel Bobrow, eds. (MIT Press, 1966).

The Psychology of Computer Programming: Silver Anniversary Edition, Gerald Weinberg (Dorset House, 1998).

The TeXbook, Donald Knuth (Addison-Wesley Professional, 1986).[86]

Writers at Work: The Paris Review Interviews, Malcolm Cowley (Penguin, 1977).

Zen and the Art of Motorcycle Maintenance: An Inquiry into Values, Robert Pirsig (Bantam, 1984).


1

Поколение “бэби-бума” (Baby Boom Generation) - жители Соединенных Штатов, рожденные в 1945-1964 гг. Окончание Второй мировой войны ознаменовалось ростом рождаемости, в результате чего на свет появилось почти 80 млн человек. - Прим. науч.ред.

2

Хакер - ИТ-специалист высшей квалификации, в совершенстве изучивший работу компьютерных систем и ПО. Хакерами часто называют взломщиков программ, что в общем случае неверно. - Прим. науч. ред.

3

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

4

Речь о компьютерах, аппаратно оптимизированных для выполнения приложений на Лиспе, в отличие от обычных компьютеров, оптимизированных для ассемблерного кода. Такие компьютеры широко применялись для исследования задачи искусственного интеллекта, поскольку компьютеры общего назначения с ними просто не справлялись. См. en.wikipedia.org/wiki/Lisp_machine. - Прим. науч. ред.

5

Речь идет о коммерческой реализации языка Common Lisp компании Lucid, получившей название Lucid Common Lisp. Позднее права перепродавались от одной компании к другой, пока не перешли к компании Lisp Works, которая и продает эту реализацию под маркой Lucid Common Lisp. - Прим. науч. ред.

6

Упреждающее исполнение команд (Speculative Execution), или исполнение команд по предположению, - это совокупность методов, позволяющая ЦП с конвейерной архитектурой обрабатывать команды без уверенности в том, что они реально будут исполняться в программе (например, в случае условного перехода). Если предположение оказывается верным, то исполнение команд продолжается и выигрывается время, а если нет (misspeculation), результаты упреждающего исполнения аннулируются. - Прим. науч.ред.

7

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

8

GDB (GNU Project Debugger) - переносимый отладчик проекта GNU, который работает на многих UNIX-подобных системах и умеет выполнять отладку многих языков программирования, включая Си, C++ и Фортран. -Прим. науч. ред.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*