Qual è stata la prima lingua a supportare la ricorsione user-land conveniente?

3

Qual è stato il primo linguaggio di programmazione a supportare la ricorsione user-land conveniente?

So che le lingue precedenti non l'hanno supportato, ma non sono stato trovato alcun dettaglio su quando è stato introdotto.

    
posta Ben 31.10.2015 - 12:16
fonte

2 risposte

10

Uno degli obiettivi di progettazione di Lisp era di supportare la ricorsione. John McCarthy, il designer di Lisp, scrive nel suo History of Lisp :

I spent the summer of 1958 at the IBM Information Research Department at the invitation of Nathaniel Rochester and chose differentiating algebraic expressions as a sample problem. […] In fact, the differentiation program was not implemented that summer, because FLPL [ed: a Fortran dialect] allows neither conditional expressions nor recursive use of subroutines. At this point a new language was necessary, since […] neither conditional expressions nor recursion could be implemented with machine language Fortran functions - not even with “functions” that modify the code that calls them.

LISP prehistory - Summer 1956 through Summer 1958

The implementation of LISP began in Fall 1958. […]

[…] Anyway, I decided to write a paper describing LISP both as a programming language and as a formalism for doing recursive function theory. The paper was Recursive functions of symbolic expressions and their computation by machine, part I (McCarthy 1960).

The implementation of LISP

Lisp e Algol sono stati progettati in parallelo e erano a conoscenza l'uno dell'altro. Ad esempio, if-then-else è stato proposto da McCarthy per Algol-58 e incluso in Algol-60. Più tardi Lisps prese molto in prestito da Algol. Quindi è un po 'difficile dire quale sia stato il primo passo - mentre l'idea di Lisp inclusa la ricorsione sembra essere più antica di quella in Algol 60, i compilatori di Algol 60 erano già disponibili nel 1960, ben prima del primo compilatore Lisp completo del 1962. Tuttavia , sembra che Steve Russell abbia implementato il Lisp tramite la funzione% interprete% di% nel 1958, anche se è difficile trovare buone referenze. Sembra giusto dire che Lisp e in Algol-60 erano pubblicati all'incirca nello stesso periodo, anche se la lingua Lisp è generalmente datata al 1958, non al 1960. In generale, il Lisp è considerato il secondo linguaggio di alto livello dopo Fortran, precedente a Cobol e Algol.

In ogni caso, Lisp ha preso molte idee tra cui il supporto esplicito per la ricorsione dal linguaggio di elaborazione delle informazioni del 1956, un linguaggio di elaborazione degli elenchi in stile assembly.

    
risposta data 31.10.2015 - 13:52
fonte
3

ALGOL-60 di Dijkstra e Zonneveld. La ricorsione non faceva parte delle specifiche originali, ma Dijkstra insisteva.

    
risposta data 31.10.2015 - 12:45
fonte

Leggi altre domande sui tag