{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,22]],"date-time":"2025-02-22T05:26:41Z","timestamp":1740202001883,"version":"3.37.3"},"reference-count":0,"publisher":"IOS Press","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2014]]},"abstract":"<jats:p>An important step from computer science to a true discipline of software engineering is to impose discipline upon the behavior of practitioners. At the programming level, this is manifested by the constraint to use catamorphisms as the basic pattern of recursion\/iteration. Catamorphisms exist for all regular recursive types and discipline (and simplify programming) to the selection of recursion pattern parameters. Reasoning about programs (for verification, transformation and optimization purposes) is similarly simplified. Catamorphisms are just one of a range of programming patterns explained by and understood in terms of mathematical category theory. The proposition that category theory provides the theory of programming (design as well as coding) is reinforced by the ability of modern programming languages to represent categorical abstractions in source code.<\/jats:p>","DOI":"10.3233\/978-1-61499-434-3-513","type":"book-chapter","created":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T10:21:00Z","timestamp":1740133260000},"source":"Crossref","is-referenced-by-count":0,"title":["From Computer Science to Software Engineering &amp;ndash; A Programming-level Perspective"],"prefix":"10.3233","author":[{"family":"Bailes Paul","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"family":"Brough Leighton","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"family":"Kemp Colin","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"7437","container-title":["Frontiers in Artificial Intelligence and Applications","New Trends in Software Methodologies, Tools and Techniques"],"original-title":[],"deposited":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T10:48:41Z","timestamp":1740134921000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.medra.org\/servlet\/aliasResolver?alias=iospressISSNISBN&issn=0922-6389&volume=265&spage=513"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014]]},"references-count":0,"URL":"https:\/\/doi.org\/10.3233\/978-1-61499-434-3-513","relation":{},"ISSN":["0922-6389"],"issn-type":[{"value":"0922-6389","type":"print"}],"subject":[],"published":{"date-parts":[[2014]]}}}