Algorithm
The word "algorithm" itself derives from the 9th century mathematician Muḥammad ibn Mūsā al-Khwārizmī, Latinized "Algoritmi". A partial formalization of what would become the modern concept of algorithm began with attempts to solve the Entscheidungsproblem (decision problem) posed by David Hilbert in 1928. Later formalizations were framed as attempts to define "effective calculability" or "effective method". Those formalizations included the Gödel–Herbrand–Kleene recursive functions of 1930, 1934 and 1935, Alonzo Church's lambda calculus of 1936, Emil Post's Formulation 1 of 1936, and Alan Turing's Turing machines of 1936–37 and 1939.
Technologies in 2001: A Space Odyssey
Clarke noted that, contrary to popular rumor, it was a complete coincidence that each of the letters of Hal's name immediately preceded those of IBM in the alphabet. The meaning of HAL has been given both as "Heuristically programmed ALgorithmic computer" and as "Heuristic ALgorithmic computer". The former appears in Clarke's novel of "2001" and the latter in his sequel novel "2010". In computer science, a heuristic is a programmable procedure not necessarily based on fixed rules, producing informed guesses often using trial-and-error. The results can be false such as in predictions of stock market, sports scores, or the weather. Sometimes this can entail selecting on-the-fly one of several methods to solve a problem based on previous experience. On the other hand, an algorithm is a programmable procedure that produces reproducible results using invariant established methods (such as computing square roots).
A heuristic approach that usually works within a tolerable margin of error may be preferred over a perfect algorithm that requires a long time to run.