© Igor Zhirkov 2017

Igor Zhirkov, Low-Level Programming, 10.1007/978-1-4842-2403-8_22

22. Bibliography

Igor Zhirkov

(1)Saint Petersburg, Russia

  1. Debugging with gdb. Available: http://sourceware.org/gdb/current/onlinedocs/gdb/ . 2017.

  2. Gnu make manual. Available: www.gnu.org/software/make/manual/ . 2016.

  3. How initialization functions are handled. Available: https://gcc.gnu.org/onlinedocs/gccint/Initialization.html . 2017.

  4. Using ld, the gnu linker. Available: www.math.utah.edu/docs/info/ld_3.html . 1994.

  5. What is map-reduce? Available: www-01.ibm.com/software/data/infosphere/hadoop/mapreduce/ . 2017.

  6. Jeff Andrews. Branch and loop reorganization to prevent mispredicts. Available: https://software.intel.com/en-us/articles/branch-and-loop-reorganization-to-prevent-mispredicts . May 2011.

  7. C11 language standard—committee draft. www.open-std.org/jtc1/sc22/wg14/www/ standards. April 2011.

  8. Luca Cardelli and Peter Wegner. On understanding types, data abstraction, and polymorphism. ACM Comput. Surv. 17(4):471–523. December 1985.

  9. Ryan A. Chapman. Linux 3.2.0-33 syscall table, x86 64. www.cs.utexas.edu/~bismith/test/syscalls/syscalls64_orig.html .

  10. Thomas H. Cormen, Clifford Stein, Ronald L. Rivest, and Charles E. Leiserson. Introduction to algorithms. New York: McGraw-Hill Higher Education, 2nd ed., 2001.

  11. Russ Cox. Regular expression matching can be simple and fast. https://swtch.com/~rsc/regexp/regexp1.html . November 2007.

  12. Ulrich Drepper. What every programmer should know about memory. https://people.freebsd.org/~lstewart/articles/cpumemory.pdf . November 2007.

  13. Ulrich Drepper. How to write shared libraries. https://software.intel.com/sites/default/files/m/a/1/e/dsohowto.pdf . December 2011.

  14. Jens Gustedt. Myth and reality about inline in c99. https://gustedt.wordpress.com/2010/11/29/myth-and-reality-about-inline-in-c99/ . 2010.

  15. Intel Corporation. Intel® 64 and IA-32 architectures software developer’s manual. Available: www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf . September 2014.

  16. Intel Corporation. Intel® 64 and IA-32 architectures optimization reference manual. Available: www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html . June 2016.

  17. David Kanter. Intel’s Haswell CPU microarchitecture. Available: www.realworldtech.com/haswell-cpu/1 .

  18. Brian W. Kernighan. The C Programming Language. Prentice Hall Professional Technical Reference, 2nd edition, 1988.

  19. Petter Larsson and Eric Palmer. Image processing acceleration techniques using intel streaming simd extensions and intel advanced vector extensions. January 2010.

  20. Doug Lea. A memory allocator. http://g.oswego.edu/dl/html/malloc.html . 2000.

  21. Michael E. Lee. Optimization of computer programs in c. Available: http://leto.net/docs/C-optimization.php .

  22. Lomont, Chris. “Fast inverse square root.” Tech-315 nical Report (2003): 32. February 2003.

  23. Love, Robert. Linux Kernel Development (Novell Press). Novell Press, 2005.

  24. Michael Matz, Jan Hubicka, Andreas Jaeger, and Mark Mitchell. System V Application Binary Interface. AMD64 Architecture Processor Supplement. Draft version 0.99.6, 2013.

  25. McKenney, Paul E. “Memory barriers: a hardware view for software hackers.” Linux Technology Center, IBM Beaverton (2010).

  26. Pawell Moll. How do debuggers (really) work? In Embedded Linux Conference Europe, October 2015. http://events.linuxfoundation.org/sites/events/files/slides/slides_16.pdf .

  27. The netwide assembler: NASM manual. Available: www.nasm.us/doc/ .

  28. N. N. Nepeyvoda and I. N. Skopin. Foundations of programming. RHD Moscow-Izhevsk,  2003.

  29. Benjamin C. Pierce. Types and programming languages. Cambridge, MA: MIT Press, 1st ed. 2002.

  30. Jeff Preshing. The purpose of memory order consume in c++11. http://preshing.com/20140709/the-purpose-of-memory_order_consume-in-cpp11/ . 2014.

  31. Jeff Preshing. Weak vs. strong memory models http://preshing.com/20120930/weak-vs-strong-memory-models/ . 2012.

  32. Brad Rodriguez. Moving forth: a series on writing Forth kernels. http://www.bradrodriguez.com/papers/moving1.html . The Computer Journal #59 (January/February 1993).

  33. Uresh, Vahalia. “UNIX Internals: The New Frontiers.” (2005). Dorling Kindersley Pvt. Limited. 2008.

  34. Anthony Williams. C++ concurrency in action: practical multithreading. Shelter Island, NY: Manning. 2012.

  35. Glynn Winskel. The formal semantics of programming languages: an introduction. Cambridge, MA: MIT Press. 1993.