<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>pascal &amp;mdash; Paolo Amoroso&#39;s Journal</title>
    <link>https://journal.paoloamoroso.com/tag:pascal</link>
    <description>Tech projects, hobby programming, and geeky thoughts of Paolo Amoroso</description>
    <pubDate>Fri, 01 May 2026 00:55:50 +0000</pubDate>
    <image>
      <url>https://i.snap.as/68i8povn.jpg</url>
      <title>pascal &amp;mdash; Paolo Amoroso&#39;s Journal</title>
      <link>https://journal.paoloamoroso.com/tag:pascal</link>
    </image>
    <item>
      <title>Reading Recursion via Pascal</title>
      <link>https://journal.paoloamoroso.com/reading-recursion-via-pascal?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[I read the book Recursion via Pascal by Jeffrey S. Rohl, Cambridge University Press, 1984. I discovered this rare, little known gem by chance and, although it&#39;s available online, I also bought a cheap printed copy.&#xA;&#xA;The book Recursion via Pascal.&#xA;&#xA;What makes this short book so interesting? The preface opens with this sentence:&#xA;&#xA;  Recursion is the cinderella of programming techniques where languages such as Pascal are concerned.&#xA;&#xA;Programming books usually devote little space to recursion, often to briefly introduce and dismiss it as hard to understand and inefficient.&#xA;&#xA;As a Lisp enthusiast, recursion comes natural to me and is a natural fit for the language. A work entirely on recursion like this is the book I always wanted but didn&#39;t know existed.&#xA;&#xA;Recursion via Pascal uses math throughout the text but the explanations are usually clear, and the elementary discrete mathematics with a few bits of calculus is not hard to follow. The snippets in Pascal are short and mostly easy to understand. This code can be ported or adapted with little effort.&#xA;&#xA;What makes the book unique is the coverage of recursion techniques. For example the techniques for making recursion more efficient such as terminating recursive calls earlier, or implementing algorithms with auxiliary procedures that take fewer parameters. The book also gives guidance on when recursion is most appropriate and when it&#39;s not.&#xA;&#xA;While most programming books don&#39;t say much on eliminating recursion other than remarking it&#39;s easy, Recursion via Pascal has a full chapter on this that actually explains what to do.&#xA;&#xA;I&#39;m glad to have such a handy reference work on recursion.&#xA;&#xA;#books #pascal #development&#xA;&#xA;a href=&#34;https://remark.as/p/journal.paoloamoroso.com/reading-recursion-via-pascal&#34;Discuss.../a&#xD;&#xA;Email | Reply @amoroso@oldbytes.space&#xD;&#xA;&#xD;&#xA;!--emailsub--]]&gt;</description>
      <content:encoded><![CDATA[<p>I read the book <em>Recursion via Pascal</em> by Jeffrey S. Rohl, Cambridge University Press, 1984. I discovered this rare, little known gem by chance and, although it&#39;s <a href="https://archive.org/details/recursionviapasc0000rohl">available online</a>, I also bought a cheap printed copy.</p>

<p><a href="https://i.snap.as/IDJaQ9lP.jpg"><img src="https://i.snap.as/IDJaQ9lP.jpg" alt="The book Recursion via Pascal."/></a></p>

<p>What makes this short book so interesting? The preface opens with this sentence:</p>

<blockquote><p>Recursion is the cinderella of programming techniques where languages such as Pascal are concerned.</p></blockquote>

<p>Programming books usually devote little space to recursion, often to briefly introduce and dismiss it as hard to understand and inefficient.</p>

<p>As a Lisp enthusiast, recursion comes natural to me and is a natural fit for the language. A work entirely on recursion like this is the book I always wanted but didn&#39;t know existed.</p>

<p><em>Recursion via Pascal</em> uses math throughout the text but the explanations are usually clear, and the elementary discrete mathematics with a few bits of calculus is not hard to follow. The snippets in Pascal are short and mostly easy to understand. This code can be ported or adapted with little effort.</p>

<p>What makes the book unique is the coverage of recursion techniques. For example the techniques for making recursion more efficient such as terminating recursive calls earlier, or implementing algorithms with auxiliary procedures that take fewer parameters. The book also gives guidance on when recursion is most appropriate and when it&#39;s not.</p>

<p>While most programming books don&#39;t say much on eliminating recursion other than remarking it&#39;s easy, <em>Recursion via Pascal</em> has a full chapter on this that actually explains what to do.</p>

<p>I&#39;m glad to have such a handy reference work on recursion.</p>

<p><a href="https://journal.paoloamoroso.com/tag:books" class="hashtag"><span>#</span><span class="p-category">books</span></a> <a href="https://journal.paoloamoroso.com/tag:pascal" class="hashtag"><span>#</span><span class="p-category">pascal</span></a> <a href="https://journal.paoloamoroso.com/tag:development" class="hashtag"><span>#</span><span class="p-category">development</span></a></p>

<p><a href="https://remark.as/p/journal.paoloamoroso.com/reading-recursion-via-pascal">Discuss...</a>
<a href="mailto:info@paoloamoroso.com?subject=Reply%20to%20Paolo%20Amoroso%27s%20Journal">Email</a> | Reply <a href="/@/amoroso@oldbytes.space" class="u-url mention">@<span>amoroso@oldbytes.space</span></a></p>


]]></content:encoded>
      <guid>https://journal.paoloamoroso.com/reading-recursion-via-pascal</guid>
      <pubDate>Tue, 26 Mar 2024 10:53:56 +0000</pubDate>
    </item>
    <item>
      <title>Pascal programming books</title>
      <link>https://journal.paoloamoroso.com/pascal-programming-books?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[I&#39;m collecting and reading more Pascal programming books than I ever did.&#xA;&#xA;My Z80-MBC2 and V20-MBC come with Turbo Pascal for CP/M preinstalled. Using the environment is making me rediscover Turbo Pascal and realize it&#39;s great for creating small CP/M tools and programs.&#xA;&#xA;To take advantage of Turbo Pascal I have been gathering old books and other Pascal learning resources that cover the CP/M version I use, selecting only the best and most interesting.&#xA;&#xA;All of them are available online, for example at the Open Library or Bitsavers.org. But these works are too precious and may disappear, not to mention the high prices of rare retrocomputing books. I want backups, so I bought used copies of some of these. Here&#39;s what my Pascal programming retro bookshelf looks like:&#xA;&#xA;Pascal programming books.&#xA;&#xA;These are the Pascal books and resources I reference most often, along with notes on what they cover or why I like them:&#xA;&#xA;Data Structures Using Pascal by Aaron Tanenbaum, second edition, 1981: a complete introduction to data structures and algorithms.&#xA;FreePascal From Square One by Jeff Duntemann, 2021: an introductory Pascal book with a focus on Free Pascal, which is close to and partly compatible with Turbo Pascal.&#xA;Software Tools in Pascal by B.W. Kernigna and P.J. Plauger, 1981: the Unix philosophy in Pascal, with good software engineering principles.&#xA;Turbo Pascal 3.0 Reference Manual: the official manual of Turbo Pascal 3 for CP/M.&#xA;Turbo Pascal: A Problem Solving Approach by Elliot Koffman, 1986: an extensive general introductory textbook on Turbo Pascal.&#xA;Turbo Pascal Program Library by T. Rugg and P. Feldman, 1986: lots of good code to study.&#xA;Turbo Pascal Tips, Tricks, and Traps by T. Rugg and P. Feldman, 1986: unique practical information and advice not available elsewhere.&#xA;Turbo Tutor: A Turbo Pascal Tutorial: Borland&#39;s official tutorial.&#xA;&#xA;#pascal #retrocomputing #books&#xA;&#xA;a href=&#34;https://remark.as/p/journal.paoloamoroso.com/pascal-programming-books&#34;Discuss.../a&#xD;&#xA;Email | Reply @amoroso@oldbytes.space&#xD;&#xA;&#xD;&#xA;!--emailsub--]]&gt;</description>
      <content:encoded><![CDATA[<p>I&#39;m collecting and reading more Pascal programming books than I ever did.</p>

<p>My <a href="https://journal.paoloamoroso.com/tag:z80mbc2">Z80-MBC2</a> and <a href="https://journal.paoloamoroso.com/tag:v20mbc">V20-MBC</a> come with Turbo Pascal for CP/M preinstalled. Using the environment is making me <a href="https://journal.paoloamoroso.com/rediscovering-turbo-pascal">rediscover Turbo Pascal</a> and realize it&#39;s great for creating small CP/M tools and programs.</p>

<p>To take advantage of Turbo Pascal I have been gathering old books and other Pascal learning resources that cover the CP/M version I use, selecting only the best and most interesting.</p>

<p>All of them are available online, for example at the Open Library or Bitsavers.org. But these works are too precious and may disappear, not to mention the high prices of rare retrocomputing books. I want backups, so I bought used copies of some of these. Here&#39;s what my Pascal programming retro bookshelf looks like:</p>

<p><a href="https://i.snap.as/mRhovLd1.jpg"><img src="https://i.snap.as/mRhovLd1.jpg" alt="Pascal programming books."/></a></p>

<p>These are the Pascal books and resources I reference most often, along with notes on what they cover or why I like them:</p>
<ul><li><a href="https://openlibrary.org/works/OL4798786W/Data_structures_using_PASCAL?edition=ia%3Adatastructuresus00tene">Data Structures Using Pascal</a> by Aaron Tanenbaum, second edition, 1981: a complete introduction to data structures and algorithms.</li>
<li><a href="http://www.copperwood.com/pub/FreePascalFromSquareOne.pdf">FreePascal From Square One</a> by Jeff Duntemann, 2021: an introductory Pascal book with a focus on Free Pascal, which is close to and partly compatible with Turbo Pascal.</li>
<li><a href="https://openlibrary.org/works/OL4617632W/Software_tools_in_Pascal?edition=ia%3Asoftwaretoolsinp00kern">Software Tools in Pascal</a> by B.W. Kernigna and P.J. Plauger, 1981: the Unix philosophy in Pascal, with good software engineering principles.</li>
<li><a href="http://bitsavers.trailing-edge.com/pdf/borland/turbo_pascal/Turbo_Pascal_Version_3.0_Reference_Manual_1986.pdf">Turbo Pascal 3.0 Reference Manual</a>: the official manual of Turbo Pascal 3 for CP/M.</li>
<li><a href="https://openlibrary.org/books/OL2538985M/Turbo_Pascal">Turbo Pascal: A Problem Solving Approach</a> by Elliot Koffman, 1986: an extensive general introductory textbook on Turbo Pascal.</li>
<li><a href="https://openlibrary.org/works/OL3535787W/Turbo_Pascal_program_library?edition=ia%3Aturbopascalprogr0000rugg">Turbo Pascal Program Library</a> by T. Rugg and P. Feldman, 1986: lots of good code to study.</li>
<li><a href="https://openlibrary.org/works/OL3535779W/Turbo_Pascal?edition=ia%3Aturbopascaltipst0000rugg">Turbo Pascal Tips, Tricks, and Traps</a> by T. Rugg and P. Feldman, 1986: unique practical information and advice not available elsewhere.</li>
<li><a href="http://bitsavers.informatik.uni-stuttgart.de/pdf/borland/turbo_pascal/Turbo_Tutor_Version_1.0_Jan85.pdf">Turbo Tutor: A Turbo Pascal Tutorial</a>: Borland&#39;s official tutorial.</li></ul>

<p><a href="https://journal.paoloamoroso.com/tag:pascal" class="hashtag"><span>#</span><span class="p-category">pascal</span></a> <a href="https://journal.paoloamoroso.com/tag:retrocomputing" class="hashtag"><span>#</span><span class="p-category">retrocomputing</span></a> <a href="https://journal.paoloamoroso.com/tag:books" class="hashtag"><span>#</span><span class="p-category">books</span></a></p>

<p><a href="https://remark.as/p/journal.paoloamoroso.com/pascal-programming-books">Discuss...</a>
<a href="mailto:info@paoloamoroso.com?subject=Reply%20to%20Paolo%20Amoroso%27s%20Journal">Email</a> | Reply <a href="/@/amoroso@oldbytes.space" class="u-url mention">@<span>amoroso@oldbytes.space</span></a></p>


]]></content:encoded>
      <guid>https://journal.paoloamoroso.com/pascal-programming-books</guid>
      <pubDate>Mon, 05 Dec 2022 16:51:35 +0000</pubDate>
    </item>
    <item>
      <title>Rediscovering Turbo Pascal</title>
      <link>https://journal.paoloamoroso.com/rediscovering-turbo-pascal?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Turbo Pascal 3 for CP/M comes preinstalled with the Z80-MBC2 and V20-MBC homebrew computers. Checking out the development environment made me rediscover Turbo Pascal and realize its potential for programming these computers.&#xA;&#xA;Although I owned Turbo Pascal for MS-DOS in the early 1990s, I didn&#39;t use it much. Between other languages later getting my attention and Borland losing its market leadership, I eventually forgot about Turbo Pascal. Now, with the development environment handy on the Z80-MBC2 and V20-MBC, I began checking out the Turbo Pascal CP/M version I had never played with.&#xA;&#xA;Being familiar with the Turbo Pascal MS-DOS IDE, which features a nice text user interface with pull-down menus and dialogs, the CP/M version seemed spartan and primitive.&#xA;&#xA;But I pressed ahead, tried the various commands, edited and compiled some code, and got familiar with the keystrokes and workflow. I soon felt at ease with Turbo Pascal for CP/M. The environment is still suprisingly usable and productive, allowing fast edit-compile-run cycles with short compilation times even on the 8-bit Z80-MBC2.&#xA;&#xA;I now understand why Turbo Pascal made such a sensation at the time and revolutionized development tools.&#xA;&#xA;To learn the Turbo Pascal environment and language I began reading the manual, as well as books about Turbo Pascal and Pascal. The more I used Turbo Pascal and read about it, the more I enjoyed it and wanted to learn and explore.&#xA;&#xA;Next thing I knew, I was down a rabbit hole.&#xA;&#xA;This experimentation and reading made me realize the potential of Turbo Pascal as an ideal tool for hobby projects with these homebrew computers.&#xA;&#xA;Pascal is an easy to understand, readable, and expressive language. Despite the age and design flaws, it allows to write fairly advanced code. Pascal makes practicality win over language purity.&#xA;&#xA;Sitting at a sweet spot between ease of use, features, and power, Turbo Pascal is a perfect fit for CP/M as it consumes limited resources, generates moderatly small and fast executables, and can access all the features of the system. That&#39;s why it&#39;s a good environment for quickly developing small tools or programs for the Z80-MBC2 and V20-MBC.&#xA;&#xA;#pascal #retrocomputing #z80mbc2 #v20mbc&#xA;&#xA;a href=&#34;https://remark.as/p/journal.paoloamoroso.com/rediscovering-turbo-pascal&#34;Discuss.../a&#xD;&#xA;Email | Reply @amoroso@oldbytes.space&#xD;&#xA;&#xD;&#xA;!--emailsub--]]&gt;</description>
      <content:encoded><![CDATA[<p>Turbo Pascal 3 for CP/M comes preinstalled with the <a href="https://journal.paoloamoroso.com/tag:z80mbc2">Z80-MBC2</a> and <a href="https://journal.paoloamoroso.com/tag:v20mbc">V20-MBC</a> homebrew computers. Checking out the development environment made me rediscover Turbo Pascal and realize its potential for programming these computers.</p>

<p>Although I owned Turbo Pascal for MS-DOS in the early 1990s, I didn&#39;t use it much. Between other languages later getting my attention and Borland losing its market leadership, I eventually forgot about Turbo Pascal. Now, with the development environment handy on the Z80-MBC2 and V20-MBC, I began checking out the Turbo Pascal CP/M version I had never played with.</p>

<p>Being familiar with the Turbo Pascal MS-DOS IDE, which features a nice text user interface with pull-down menus and dialogs, the CP/M version seemed spartan and primitive.</p>

<p>But I pressed ahead, tried the various commands, edited and compiled some code, and got familiar with the keystrokes and workflow. I soon felt at ease with Turbo Pascal for CP/M. The environment is still suprisingly usable and productive, allowing fast edit-compile-run cycles with short compilation times even on the 8-bit Z80-MBC2.</p>

<p>I now understand why Turbo Pascal made such a sensation at the time and revolutionized development tools.</p>

<p>To learn the Turbo Pascal environment and language I began reading the manual, as well as books about Turbo Pascal and Pascal. The more I used Turbo Pascal and read about it, the more I enjoyed it and wanted to learn and explore.</p>

<p>Next thing I knew, I was down a rabbit hole.</p>

<p>This experimentation and reading made me realize the potential of Turbo Pascal as an ideal tool for hobby projects with these homebrew computers.</p>

<p>Pascal is an easy to understand, readable, and expressive language. Despite the age and design flaws, it allows to write fairly advanced code. Pascal makes practicality win over language purity.</p>

<p>Sitting at a sweet spot between ease of use, features, and power, Turbo Pascal is a perfect fit for CP/M as it consumes limited resources, generates moderatly small and fast executables, and can access all the features of the system. That&#39;s why it&#39;s a good environment for quickly developing small tools or programs for the Z80-MBC2 and V20-MBC.</p>

<p><a href="https://journal.paoloamoroso.com/tag:pascal" class="hashtag"><span>#</span><span class="p-category">pascal</span></a> <a href="https://journal.paoloamoroso.com/tag:retrocomputing" class="hashtag"><span>#</span><span class="p-category">retrocomputing</span></a> <a href="https://journal.paoloamoroso.com/tag:z80mbc2" class="hashtag"><span>#</span><span class="p-category">z80mbc2</span></a> <a href="https://journal.paoloamoroso.com/tag:v20mbc" class="hashtag"><span>#</span><span class="p-category">v20mbc</span></a></p>

<p><a href="https://remark.as/p/journal.paoloamoroso.com/rediscovering-turbo-pascal">Discuss...</a>
<a href="mailto:info@paoloamoroso.com?subject=Reply%20to%20Paolo%20Amoroso%27s%20Journal">Email</a> | Reply <a href="/@/amoroso@oldbytes.space" class="u-url mention">@<span>amoroso@oldbytes.space</span></a></p>


]]></content:encoded>
      <guid>https://journal.paoloamoroso.com/rediscovering-turbo-pascal</guid>
      <pubDate>Sat, 05 Nov 2022 14:32:57 +0000</pubDate>
    </item>
  </channel>
</rss>