PAL (programming language)
PAL, the Pedagogic Algorithmic Language, is a programming language developed at the Massachusetts Institute of Technology in around 1967 to help teach programming language semantics and design.{{cite web |last1=Evans |first1=Arthur Jr. |title=PAL: Pedagogic Algorithmic Language: A Reference Manual and a Primer |website=Computer History Museum: Software Preservation Group |publisher=Department of Electrical Engineering, MIT |access-date=10 November 2022 |url=https://www.softwarepreservation.org/projects/PAL/Pal-ref-man.pdf/view |location=Mountain View, California |format=PDF |date=February 1968}}John M. Wozencraft and Arthur Evans, Jr. Notes on Programming Linguistics. Unpublished report, Department of Electrical Engineering, MIT. February, 1971. It is a "direct descendant" of ISWIM and owes much of its philosophy to Christopher Strachey.Arthur Evans, Jr., "PAL—a language designed for teaching programming linguistics" Proceedings of the 1968 23rd ACM National Conference (August 27–29, 1968), p. 395-403 [http://dl.acm.org/citation.cfm?id=810604 ACM abstract]
The initial implementation of PAL, in Lisp, was written by Peter Landin and James H. Morris, Jr. and ran under CTSS. It was later redesigned by Martin Richards, Thomas J. Barkalow, Arthur Evans, Jr., Robert M. Graham, James Morris, and John Wozencraft. It was implemented by Richards and Barkalow in BCPL as an intermediate-code interpreter and ran on the IBM System/360; this was called PAL/360.{{cite web |url = http://www.softwarepreservation.org/projects/lang/PAL |title = PAL (Pedagogic Algorithmic Language) |publisher = Computer History Museum/Software Preservation Group }}
RPAL
RPAL, the Right-reference Pedagogic Algorithmic Language, is a functional subset of PAL with an implementation on SourceForge.{{cite web |url = http://rpal.sourceforge.net/ |title=RPAL - The Right-reference Pedagogic Algorithmic Language|publisher=SourceForge}} It is used at the University of Florida to teach the construction of programming languages and functional programming. Programs are strictly functional, with no sequence or assignment operations.