欢迎来到相识电子书!

标签:Programming

  • 程序员修炼之道

    作者:[美]享特

    《程序员修炼之道》适合各层次软件开发人员阅读,也适合高等院校计算机专业学生和教师阅读。
  • 正则表达式必知必会

    作者:Ben Forta

    正则表达式是一种威力无比强大的武器,几乎在所有的程序设计语言里和计算机平台上都可以用它来完成各种复杂的文本处理工作。本书从简单的文本匹配开始,循序渐进地介绍了很多复杂内容,其中包括回溯引用、条件性求值和前后查找,等等。每章都为读者准备了许多简明又实用的示例,有助于全面、系统、快速掌握正则表达式,并运用它们去解决实际问题。 本书适合各种语言和平台的开发人员。
  • 编写高质量代码

    作者:李健

    本书是C++程序员进阶修炼的必读之作,包含的全部都是C++编码的最佳实践,从语法、编码规范和编程习惯、程序架构和设计思想等三大方面对C++程序和设计中的疑难问题给出了经验性的解决方案,为C++程序员编写更高质量的C++代码提供了150条极为宝贵的建议。每个问题都来自于实践,都极具代表性,本书不仅以建议的方式正面为每个问题给出了被实践证明为十分优秀的解决方案,而且还从反面给出了被实践证明为不好的解决方案,从正反两个方面进行了分析和对比。 全书在逻辑上一共分为三个部分:语法部分涵盖C++从C语言继承而来的一些极为重要但又极容易被误解和误用的一些语法特性,从C语言到C++的改变,以及内存管理、类、模板、异常处理、STL等方面的内容;编码习惯和编程规范部分则主要讨论了如何提高程序的正确性、可读性、程序性能和编码效率方面的问题;程序架构和思想部分则从更高的高度对C++程序设计思维和方法进行了审视,给出了一些颇具价值的观点和最佳实践。 这是一本关于如何提高C++程序设计效率与质量的工具书,希望书中的每条建议都能引起你的思考,对于有难度的内容,建议大家消化理解,切勿死记硬背,同时也希望大家能悟出更好的解决方案。希望本书中的每条建议所传递的思想和理念能够渗透到大家的编码实践中,进而帮助大家真正具备编写高质量C++代码的能力。
  • C++ Primer Plus

    作者:Stephen Prata

    C++ Primer Plus, Sixth Edition New C++11 Coverage C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible and easy-to-use self-study guide, this book is appropriate for both serious students of programming as well as developers already proficient in other languages. The sixth edition of C++ Primer Plus has been updated and expanded to cover the latest developments in C++, including a detailed look at the new C++11 standard. Author and educator Stephen Prata has created an introduction to C++ that is instructive, clear, and insightful. Fundamental programming concepts are explained along with details of the C++ language. Many short, practical examples illustrate just one or two concepts at a time, encouraging readers to master new topics by immediately putting them to use. Review questions and programming exercises at the end of each chapter help readers zero in on the most critical information and digest the most difficult concepts. In C++ Primer Plus, you'll find depth, breadth, and a variety of teaching techniques and tools to enhance your learning: * A new detailed chapter on the changes and additional capabilities introduced in the C++11 standard * Complete, integrated discussion of both basic C language and additional C++ features* Clear guidance about when and why to use a feature* Hands-on learning with concise and simple examples that develop your understanding a concept or two at a time* Hundreds of practical sample programs* Review questions and programming exercises at the end of each chapter to test your understanding* Coverage of generic C++ gives you the greatest possible flexibility* Teaches the ISO standard, including discussions of templates, the Standard Template Library, the string class, exceptions, RTTI, and namespacesTable of Contents 1: Getting Started with C++ 2: Setting Out to C++ 3: Dealing with Data 4: Compound Types 5: Loops and Relational Expressions 6: Branching Statements and Logical Operators 7: Functions: C++'s Programming Modules 8: Adventures in Functions 9: Memory Models and Namespaces 10: Objects and Classes 11: Working with Classes 12: Classes and Dynamic Memory Allocation 13: Class Inheritance 14: Reusing Code in C++ 15: Friends, Exceptions, and More 16: The string Class and the Standard Template Library 17: Input, Output, and Files 18: The New C++11 Standard A Number Bases B C++ Reserved Words C The ASCII Character Set D Operator Precedence E Other Operators F The stringTemplate Class G The Standard Template Library Methods and Functions H Selected Readings and Internet Resources I Converting to ISO Standard C++ J Answers to Chapter Reviews
  • 剑指Offer

    作者:何海涛

    《剑指Offer:名企面试官精讲典型编程题》剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点。全书分为7章,主要包括面试的流程,讨论面试流程中每一环节需要注意的问题;面试需要的基础知识,从编程语言、数据结构及算法三方面总结了程序员面试的知识点;高质量的代码,讨论影响代码质量的3个要素(规范性、完整性和鲁棒性),强调高质量的代码除了能够完成基本的功能之外,还能考虑到特殊情况并对非法输入进行合理的处理;解决面试题的思路,总结在编程面试中解决难题的常用思路,如果在面试过程中遇到了复杂的难题,应聘者可以利用画图、举例和分解复杂问题3种方法化繁为简,先形成清晰的思路再动手编程;优化时间和空间效率,介绍如何优化代码的时间效率和空间效率,读完这一章读者将学会常用的优化时间效率及空间换时间的常用算法,从而在面试中找到最优的解法;面试中的各种能力,本章总结应聘者在面试过程中如何表现学习能力和沟通能力,并通过具体的面试题讨论如何培养知识迁移能力、抽象建模能力和发散思维能力;两个面试案例,这两个案例总结了应聘者在面试过程中哪些举动是不好的行为,而哪些表现又是面试官所期待的行为。
  • 实用Common Lisp编程

    作者:Peter Seibel

    由塞贝尔编著的《实用Common Lisp编程》是一本不同寻常的Common Lisp入门书。《实用Common Lisp编程》首先从作者的学习经过及语言历史出发,随后用21个章节讲述了各种基础知识,主要包括:REPL及Common Lisp的各种实现、S-表达式、函数与变量、标准宏与自定义宏、数字与字符以及字符串、集合与向量、列表处理、文件与文件I/O处理、类、FORMAT格式、符号与包,等等。而接下来的9个章节则翔实地介绍了几个有代表性的实例,其中包含如何构建垃圾过滤器、解析二进制文件、构建ID3解析器,以及如何编写一个完整的MP3 Web应用程序等内容。最后还对一些未介绍内容加以延伸。 《实用Common Lisp编程》内容适合Common Lisp初学者及对之感兴趣的相关人士。
  • Computer Architecture, Fifth Edition

    作者:John L. Hennessy,Dav

    The computing world today is in the middle of a revolution: mobile clients and cloud computing have emerged as the dominant paradigms driving programming and hardware innovation today. The Fifth Edition of Computer Architecture focuses on this dramatic shift, exploring the ways in which software and technology in the cloud are accessed by cell phones, tablets, laptops, and other mobile computing devices. Each chapter includes two real-world examples, one mobile and one datacenter, to illustrate this revolutionary change. Updated to cover the mobile computing revolution Emphasizes the two most important topics in architecture today: memory hierarchy and parallelism in all its forms. Develops common themes throughout each chapter: power, performance, cost, dependability, protection, programming models, and emerging trends ("What's Next") Includes three review appendices in the printed text. Additional reference appendices are available online. Includes updated Case Studies and completely new exercises.
  • Advanced R

    作者:Hadley Wickham

    Advanced R presents useful tools and techniques for attacking many types of R programming problems, helping you avoid mistakes and dead ends. With more than ten years of experience programming in R, the author illustrates the elegance, beauty, and flexibility at the heart of R. The book develops the necessary skills to produce quality code that can be used in a variety of circumstances. You will learn: -The fundamentals of R, including standard data types and functions -Functional programming as a useful framework for solving wide classes of problems -The positives and negatives of metaprogramming -How to write fast, memory-efficient code This book not only helps current R users become R programmers but also shows existing programmers what’s special about R. Intermediate R programmers can dive deeper into R and learn new strategies for solving diverse problems while programmers from other languages can learn the details of R and understand why R works the way it does.
  • Effective Modern C++

    作者:Scott Meyers

    Learn how to program expertly with C++ with this practical book from Scott Meyers, one of the world's foremost authorities on this systems programming language. Scott Meyers takes some of the most difficult pieces of C++ code and unfurls them so that you can see how to manipulate your own project code. This is the first book to contain content written with the C++14 standard. Tackle 42 separate C++ problems and solutions Learn critical techniques for success on topics from smart pointers to lambda expressions Understand key concepts by taking the C++ 98 standard to C++ 11 and then to C++ 14
  • 领域特定语言

    作者:Martin Fowler

    本书是DSL领域的丰碑之作,由世界级软件开发大师和软件开发“教父”Martin Fowler历时多年写作而成,ThoughtWorks中国翻译。全面详尽地讲解了各种DSL及其构造方式,揭示了与编程语言无关的通用原则和模式,阐释了如何通过DSL有效提高开发人员的生产力以及增进与领域专家的有效沟通,能为开发人员选择和使用DSL提供有效的决策依据和指导方法。 全书共57章,分为六个部分:第一部分介绍了什么是DSL,DSL的用途,如何实现外部DS和内部DSL,如何生成代码,语言工作台的使用方法;第二部分介绍了各种DSL,分别讲述了语义模型、符号表、语境变量、构造型生成器、宏和通知的工作原理和使用场景;第三部分分别揭示分隔符指导翻译、语法指导翻译、BNF、易于正则表达式表的词法分析器、递归下降法词法分析器、解析器组合子、解析器生成器、树的构建、嵌入式语法翻译、内嵌解释器、外加代码等;第四部分介绍了表达式生成器、函数序列、嵌套函数、方法级联、对象范围、闭包、嵌套闭包、标注、解析数操作、类符号表、文本润色、字面量扩展的工作原理和使用场景;第五部分介绍了适应性模型、决策表、依赖网络、产生式规则系统、状态机等计算模型的工作原理和使用场景;第六部分介绍了基于转换器的代码生成、模板化的生成器、嵌入助手、基于模型的代码生成、无视模型的代码生成和代沟等内容。
  • Practical Java中文版

    作者:(美)Peter Haggar

    本书出自第一线JAVA编程专家之手,为读者展现正确、高效、强固之JAVA代码实践方案。 这本取材广泛的掼,以不同层级的专家经验,帮助程序员更透彻地理解JAVA,使他们的编码效能发挥到极致。此书以准则/条款形式进行编排,探究改善代码的68个重要主题,提供精晰明快、精心撰写之示例和方案。所有示例和方案都带有详尽的解说,你可以将它们融入自身工作之中。这些编程和设计上的实践方案,描述了经验丰富的程序员实际运用之最佳实践手法。为方便中高阶JAVA程序员阅读,本书内容被精心安排成为各自独立的课程,因此你既可以从头通读至尾,也可以挑选独特专题加以精读。
  • C语言接口与实现

    作者:(美)David R.Hanson

    本书概念清晰、内容新颖、实例详尽,是一本有关设计、实现和有效使用C语言库函数,掌握创建可重用C语言软件模块技术的参考指南。本书倡导基于接口的C语言设计理念及其实现技术,深入详细地描述了24个C语言接口及其实现。 本书通过叙述如何用一种与语言无关的方法将接口的设计与实现独立开来,从而形成一种基于接口的设计途径来创建可重用的API,本书是一本针对 C语言程序员的不可多得的好书,也是值得所有希望掌握可重用软件模块技术的读者阅读的参考书籍。 关于如何设计、实现和有效使用库函数的指南少之又少(如果说还有的话)。这本力作填补了这 个空白。它可以作为下一代软件的工具书.所有的C语言程序员都应该阅读。
  • Code Reading

    作者:Diomidis Spinellis

    This book is a unique and essential reference that focuses upon the reading and comprehension of existing software code. While code reading is an important task faced by the vast majority of students, it has been virtually ignored as a discipline by existing references. The book fills this need with a practical presentation of all important code concepts, form, structure, and syntax that a student is likely to encounter. The concepts are supported by examples taken from real-world open source software projects. The focus upon reading code (rather than developing and implementing programs from scratch) provides for a vastly increased breadth of coverage.
  • 可变目标C编译器

    作者:Christopher W. Frase

    本书系统地介绍了可变目标ANSIC编译器1cc的设计方法和实现技术。1cc是一个实用的编译器,能够不同的目标机器生成代码。本书结合1cc的具体实现,详细讲术了存储管理、符号表、词法分析、语法分析、中间代码生成、优化、目标代码产生等编译程序的各个部分。全书共分19章,在各章之后均附有练习。 与其他介绍编译技术的教材相比,本书特色鲜明,实用性强,适合作为高等院校计算机专业的编译原理课程的教材或参考书,对从事编译相关工作的技术人员也有很好的参考价值。
  • Accelerated C++中文版

    作者:Andrew Koenig,Barbar

    《Accelerated C++中文版》给人的印象会如此深刻呢?这是因为:   ●它一开始就向读者教导那些最有用的概念,而不是那些简单的注释 读者很快就能够以此开始编程   ●它描述的是现实中的问题和解决方案,而不是单纯的语言特性 读者不但学习到了这些特性,而且还知道如何把它们应用到程序中去   ●它涵盖的范围同时包括了语言本身和标准库 读者可以从一开始就使用标准库来编写自己的程序   作者通过他们在美国斯坦福大学的教学经验证明了这种方法的有效性—在那里,学生们在他们的第一堂课中就学习到了如何编写真实的程序。   不管你是一个渴望开始学习C++编程的新手,还是一个已经使用C++多年并对它有了很深了解的老手,作者们独特的教学方法和经验都使得《Accelerated C++中文版》应该成为你书架中不可缺少的一个补充。
  • Java编程思想

    作者:埃克尔

    本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性,本书能逐步指导你轻松掌握。   本书经典的Java介绍,完全针对Java1.4版本更新,并增加了许多新主题。350多个可运行的Java程序,15000多行代码。讲述Java的同时着得阐释面向对象原理。支持网站包括所有源代码、带注释的解决方案指南、评论以及其他资源。随书光盘包括可用于Windows、Linux和Mac的完整的Fundations for Java多媒体研讨教材。本书的全面性,适用于初学者;本书的深入性,适用于专家。随书光盘含有15个小时的Bruce Eckel演讲课程。
  • UNIX网络编程第2卷

    作者:WRichardStevens

    UNIX网络编程:第2版(第2卷 进程间通信),ISBN:9787302038153,作者:(美)[W.R.史蒂文斯]W.Richard Stevens著;杨继张译
  • 算法Ⅰ~Ⅳ(C++实现):基础、数据结构、排序和搜索

    作者:Sedgewick

    本书通过C++实现方案以简洁、直接的方式对书中的算法和数据结构进行表述,并向学生提供在实际应用中验证这种方法的手段。   本书广泛地论述了与排序、搜索及相关应用有关的基本数据结构和算法。覆盖了数组、链表、串、树和其他基本数据结构,更多地强调抽象数据类型(ADT)、模块化程序设计、面向对象程序设计和C++类。本书包括排序、选择、优先队列ADT实现和符号表ADT(搜索)实现,配有帮助学生学习计算机算法特性的1000多种新练习、100多个图表以及大量的程序例子。   Robert Sedgewick完全重定了他的著作,对它进行了充分的扩展和更新,涵盖了目前重要的算法和数据结构。Christopher Van Wyk和Sedgewick开发的新实现采用的是C++语言,这种实现不仅能简洁直接地表达算法,而且给编程者提供了实践的方法,以便在真正的应用中测试这些算法。   新的版本提供了很多新算法,而且对每个算法的解释也比以前的版本详细得多。新的版面设计以及详细、富有创意并且具有注释的插图,使本书的表达能力大大地提高了。第三版保留了将理论和实践成功混合在一起的特点,正是这一点,使Sedgewick的著作成为25万多名程序员无价的参考资源。   本书是全卷的前半部分,涵盖了基本的数据结构、排序算法、搜索算法以及它们的相关应用。虽然本书实质上可以用于各种语言的程序设计,Christopher Van Wyk和Sedgewick的实现都采用了C++类和ADT实现的自然对应。   本书的精彩内容包括: ·扩展了对数组、链表、字符串树及其他基本数据结构的介绍。 ·比以前的版本更中着重于抽象数据类型(ADT)、模块化程序设计方法、面向对象的程序 设计方法和C++类。 ·有关排序、选择、优先级队列ADT实现和符号表ADT(搜索)实现的算法,超过100个。 ·关于二项式队列、多路基数排序、随机化BST、发散树、跳跃表、多叉线索、B树、可扩充散列等,采用了新的实现。 ·关于算法的量化分析,是比较算法的依据。 ·1000多条新的练习,帮助读者学习算法。   无论是你初学算法,还是想找一本将最新C++经典算法和新算法融入程序设计的参考手册,你都会发现本书提供了丰富的有用信息。
  • C Interfaces and Implementations

    作者:David R. Hanson

    Every programmer and software project manager must master the art of creating reusable software modules; they are the building blocks of large, reliable applications. Unlike some modern object-oriented languages, C provides little linguistic support or motivation for creating reusable application programming interfaces (APIs). While most C programmers use APIs and the libraries that implement them in almost every application they write, relatively few programmers create and disseminate new, widely applicable APIs. C Interfaces and Implementations shows how to create reusable APIs using interface-based design, a language-independent methodology that separates interfaces from their implementations. This methodology is explained by example. The author describes in detail 24 interfaces and their implementations, providing the reader with a thorough understanding of this design approach.