ALGOL and Algol
January 3, 2022
I was introduced to
computers by watching
1950s science fiction films. While the computers in these films
imitated some aspects of the
mainframe computers of their time, such as
room-filling size and
flashing lights, their
cinematic depiction was far in advance of actual computers. They had fast
processing speed and
data memory, and they did things such as
natural language processing that were only achieved more than half a
century later.
I was interested in computers in
elementary school and in
high school, but my interest was immediately
dampened as I started college when I saw how computing was actually done.
Students in
computer programming courses were
cursed with carrying huge
boxes of
punched cards that they passed through a slot into a
walled garden of computing, subsequently retrieving their boxes with a
printout of
program errors. These
unlucky students then needed to extract the errant cards from their deck, punch replacement cards, and insert these new cards into the proper places. This entire process was distasteful, so I never took a computer course.
Eventually, I had access to a
time-share terminal at which I learned
Fortran on my own. The computer system at my
graduate school was an
IBM System/360, eventually upgraded to an
IBM System/370, and its time-share
programming language was
APL, which I also learned on my own. While the computer terminals in the
science and
engineering buildings were often fully-occupied, I found that the lone terminal in the
anthropology building was always vacant; so, I did most of my computing there. Much later, scientific
desktop computers became available; and, soon afterwards,
personal computers. These quickly expanded my language
repertoire to include
Pascal,
Forth, and
Visual Basic.
A keyboard that only a mathematician would love. This is the layout of the IBM APL keyboard. APL was principally created by computer scientist, Kenneth E. Iverson (1920-2004). I labored over such a keyboard for many hours as a graduate student, mostly coding thermodynamic calculations to create theoretical phase diagrams. (Via Wikimedia Commons.)
One principal programming language of the early days of computing was
ALGOL (short for
Algorithmic Language), a language deigned for scientists just as Fortran was designed for engineers. ALGOL introduced
code blocks tagged with the
begin and
end keyword pairs, and these were directly adopted by Pascal in 1970, and as the
curly brace pairs in the
C programming language.
Niklaus Wirth (b. 1934), the originator of Pascal, apparently created Pascal in a protest of the complexity of the 1968 version of ALGOL.[1]
Compilation of ALGOL and its derivatives was facilitated by its embrace of the
formal grammar known as
Backus-Naur form.
Dennis Ritchie (1941-2011), co-creator of the C programming language, compared
BLISS, Pascal, Algol 68, and C at the
second ACM History of Programming Languages conference (Cambridge, Massachusetts, 1993), and spoke about the demise of ALGOL,
"In some ways, Algol 68 is the most elegant of the languages I've been discussing. I think in some ways, it's even the most influential, although as a language in itself, it has nearly gone away."[1]
ALGOL lives on in
Linux as a version of ALGOL 68 called
Algol 68 Genie.[2-3]
Left, Wikimedia Commons image by Denise Panyik-Dale of Dennis Ritchie at the Japan Prize ceremony, May, 2011. Right, a scan of my first edition (1978) of The C Programming Language by Ritchie and Brian W. Kernighan (b. 1942).
It's not surprising that a
search for ALGOL gives first results for another Algol,
Algol, the second
brightest star (β-Persei) in the
constellation,
Perseus. The brightest star of Perseus,
α-Persei, also known by the
Arabic name, Mirfak (
elbow), might be brighter, but it's not as interesting. Just consider that Algol was
historically called the
Demon Star and the
Gorgon of Perseus.
Algol in the constellation, Perseus.
All the constellations adjacent to Perseus should be familiar to amateur astronomers, except for Camelopardalis. Camelopardalis is a faint constellation of the northern celestial hemisphere that represents a giraffe.
(Modified Wikimedia Commons image. Click for larger image.)
Algol is not a single star, but a three-star system dominated by a hot
luminous primary. A cooler and fainter star regularly passes in front of the more luminous star, and this causes a
partial eclipse that decrease Algol's
magnitude from 2.1 to 3.4 every 2.86 days over an approximate 10-hour period. Algol was the first such
eclipsing binary star discovered, and similar systems are known as
Algol variables.
British amateur astronomer,
John Goodricke (1764-1786), was awarded the
Copley Medal for his 1783 observations of the periodic variability of Algol, but it wasn't until 1881 that
American astronomer,
Edward Pickering (1846-1919), elucidated the eclipsing binary nature of Algol. The eclipsing binary stars are extremely close, just 0.062
astronomical units (AU) from each other. As a reference, the
planet Mercury orbits our
Sun between 0.307499 and 0.466697 AU. The third star is an average distance of 2.69 AU from the eclipsing pair.
Astronomers, John Goodricke (1764-1786) and Edward Pickering (1846-1919). (Left image, a 1785 portrait by James Scouler (1740–1812). Right image, a 1911 portrait by Sarah Gooll Putnam (1851–1912) in the Harvard University Portrait Collection. Both images from Wikimedia Commons. Click for larger image.)
Lauri Jetsu, an astronomer at the
University of Helsinki (Helsinki, Finland), has recently
published a
statistical analysis of 236 years of Algol
observations.[4-5] The
data reveal tentative indications of at least five companions having periods between 1.863 and 219.0 yr, although one of these might be the affect of a known companion star.[4] The data give an excellent
prediction for the last 9.2 yr of the
dataset (see figure).[4] Jetsu has had a persistent interest in Algol, having co-authored two other
papers about this star.[6-7]
Theory vs. observations for the last 15 years of Algol variability. The time axis is the number of days since November, 1782, and the data axis (O-C) is the difference between observation (O) and computed value (C). The red points on the upper curve are the observations, the green line is the prediction, and dotted green lines show the error limits of the prediction. The lower line is the deviation from prediction. (University of Helsinki image by Lauri Jetsu, also available here. Click for larger image.)
The data analysis was performed using the
discrete chi-square method for observations from November, 1782, to October, 2018.[5] The discrete chi-square method is designed for detecting regular
periodic signals, such as these orbital motions, superimposed on an irregular
aperiodic trend.[5]
References:
- Chris Hermansen, "Exploring Algol 68 in the 21st century," OpenSource.com, June 3, 2020.
- Marcel van der Veer, The Algol 68 Genie project.
- Open source Algol 68 implementations, Sourceforge.net.
- Lauri Jetsu, "Say Hello to Algol's New Companion Candidates," The Astrophysical Journal, vol. 920, no. 2 (October 22, 2021), article no. 137, https://doi.org/10.3847/1538-4357/ac1351.
- Say hello to Algol's new companion candidates, University of Helsinki Press Release, November 4, 2021. Also available here.
- L. Jetsu, S. Porceddu, J. Lyytinen, P. Kajatkari, J. Lehtinen, T. Markkanen, and J. Toivari-Viitala, "Did the Ancient Egyptians Record the Period of the Eclipsing Binary Algol - The Raging One?" The Astrophysical Journal, vol. 773, no. 1 (July 18, 2012), https://doi.org/10.1088/0004-637X/773/1/1.
- Lauri Jetsu and Sebastian Porceddu, "Shifting Milestones of Natural Sciences: The Ancient Egyptian Discovery of Algol's Period Confirmed," PLOS, December 17, 2015, https://doi.org/10.1371/journal.pone.0144140.