In 2025, author Jeff Duntemann released the latest edition of his book on FreePascal and Lazarus, which he originally began writing as a beginner's guide to Pascal back in 1983. He published it as a free eBook, available for ↗download as a PDF from his website.
The author shares the long history behind the creation of this book and his goal to make programming with Pascal accessible to complete beginners. The book focuses on building a solid foundation in FreePascal step by step.
This chapter introduces the idea of a computer as a device that follows a specific plan — your program. Using real-life examples, it explains basic control structures like conditions and loops.
Here, the author explores what programming really is, the role of programming languages, and why Pascal is a good language for learning. It also covers the creative nature of developing software.
This chapter introduces structured programming and shows how to write clean, logical, and maintainable code. It stresses readability and modular thinking from the start.
A step-by-step guide to installing the FreePascal compiler and the Lazarus IDE on various operating systems. It also addresses common setup issues.
This chapter explains the Lazarus interface and how to create, build, and run simple projects. It includes tips for optimizing and customizing the development environment.
An introduction to the basic building blocks of Pascal, such as keywords, operators, and the overall program structure. It lays the groundwork for deeper language features.
This chapter covers the basic types like integers, floating points, and booleans. You'll learn how to declare variables and manipulate values in Pascal.
This section introduces complex types like arrays, records, and enumerations. It shows how to organize and work with structured data effectively.
Here, you learn how to format and structure your code blocks for clarity. It emphasizes consistent indentation, naming, and code documentation.
This chapter explains how to break down your code into reusable components. You'll learn how to pass parameters and return values through functions and procedures.
An overview of Pascal’s built-in functions, especially for common tasks like math operations and type conversions. These tools simplify many day-to-day programming tasks.
This section focuses on handling strings, including how to manipulate, compare, and transform text data. Practical examples are used throughout.
This chapter explains variable scope — where variables can be accessed or modified. It distinguishes between global and local variables.
An introduction to working with files in FreePascal, including reading from and writing to text files. It also covers basic file handling operations.
The final chapter explains how to divide larger programs into modules (called Units) for better structure. It shows how to manage and compile modular code effectively.