Logic for Programmers

Logic for Programmers

Logic for Programmers

Author:Hillel Wayne (Author)

Publisher finelybook 出版社:‏leanpub

Publication Date 出版日期:2025-08-06

Edition 版本:‏version 0.11.1

Language 语言:English

Print Length 页数:150 pages

Book Description

About the Boo

If I start a build at 3:05 PM and it takes 12 minutes to complete, when will the build be finished?

To answer this question, we need to know how to manipulate numbers. The mathematics of numbers is called “arithmetic”. Arithmetic shows us how to multiply two numbers, use fractions, determine which of two numbers is larger, and more.

If I have the conditional if(sensor_offline || inactive), and I know for sure that sensor_offline is true, does the value of inactive matter?

To answer this question, we need to know how to manipulate booleans. The mathematics of booleans is called “logic”. Logic shows us how to simplify a boolean expression, use sets, determine if one statement is stronger than another, and more.

But there is one key difference between arithmetic and logic. We were taught arithmetic in elementary school. Few of us were formally taught logic. Most programmers pick up a little logic by osmosis, but even that rarely exposes people to anything beyond the basics. This makes logic the single most useful topic in math a programmer can learn.

That is the goal of this book. Reading this will teach you the basics of logic and how to apply it to various everyday software problems, like testing code, designing a database, working out customer requirements, and more. Over 40 exercises are provided to help readers master the material. No prior math background required!

——

The book’s current status is BETA. Most of the content is in but I will be changing the prose and polishing based on reader feedback. I also need to give more attention to book layout, formatting, and proofreading. And there’s always room for more useful exercises!

I will release new betas monthly, with the final 1.0 coming sometime mid-late 2025. If you buy the book now, you’ll get all future version for free as well as input into how it develops.

 New in v0.11:

  • Brand new chapter, “Proving Code Correct”, covering proofs, loop invariants, formal verification

  • Total rewrite of “Database” chapter: Now covers database representations, relational model, queries, joins, and constraints. Two new executable SQL examples on constraints. One new image

  • Total rewrite of “Functional Correctness”: Now covers assertions, MISU, polymorphism, advice. Loop invariants and formal verification moved to proofs chapter

  • Total rewrite of “Case Coverage”, now called “Case Analysis”: New introduction and motivating example. More material on analysing code with decision tables, techniques, when not to use DTs. Redundant examples removed

  • Logic chapter improved, now covers the way-more-common scoped quantifiers before unscoped

  • Fixed “symmetric difference” exercise

  • Six exercises removed, eleven added (+5 total)

  • Better format for proof tables and rewrite rules

  • Some initial table of contents tweaks 

  • Fixed PDF bug: admonition sidebars now render correctly in Acrobat

Table of Contents

  • Acknowledgements

  • Part I: Introduction

    • 1. Early access notes

    • 2. A crash course in logic

  • Part II: Techniques

    • 1. Refactoring code

    • 2. Testing and property testing

    • 3. Functional correctness and contracts

    • 4. Code proofs and formal verification

    • 5. Case coverage and decision tables

    • 6. Database theory

    • 7. Data modeling and formal specification

    • 8. System modeling and TLA+

    • 9. Constraint solving

    • 10. Logic programming

  • Part III: Appendices

    • 1. Math notation

    • 2. Rewrite rules

    • 3. Other ideas in logic

    • 4. Answers to Exercises

Amazon Page

下载地址

PDF, EPUB | 1 MB | 2025-08-12
下载地址 Download解决验证以访问链接!
打赏
未经允许不得转载:finelybook » Logic for Programmers

评论 抢沙发

觉得文章有用就打赏一下

您的打赏,我们将继续给力更多优质内容

支付宝扫一扫

微信扫一扫