O que ele fez de forma diferente de Lisp

1. Condicional Um condicional é uma construção de se – então mais. Agora nós lhes damos como garantido. Eles foram inventados por McCarthy enquanto desenvolveu Lisp. (Fortran naquele tempo só tinha um goto condicional, com base em estreita estreita na instrução de transferência no hardware subjacente.) McCarthy, que estava no comitê de Algol, introduzido condicional em Algol, do qual se estenderam à maioria dos outros idiomas.
2 . Um tipo de função. Em Lisp, as funções são objetos de primeira classe – são um tipo de dados como inteiros, correntes, etc., e têm uma representação literal, podem ser armazenadas nas variáveis, podem ser passadas como argumentos, e assim por diante.
3 . Recursão A recursão existe como um conceito matemático desde antes de Lisp, é claro; Mas Lisp foi a primeira linguagem de programação para apoiá-la. (Pode-se dizer que está implícito em fazer as funções primeiro objetos de classe.)
4. Um novo conceito de variáveis. Em Lisp, todas as variáveis são, de fato, ponteiros. Os valores têm tipos, não variáveis e atribuir ou link variáveis significa copiar cocôs, não no que elas apontam.
5. Coleção de lixo.
6. Programas compostos de expressões. Os programas Lisp são árvores de expressões, cada um dos quais retorna um valor. (Em alguns lisps, as expressões podem retornar vários valores.) Isso contrasta com o Fortran e a maioria das sucessivas línguas, que distingue entre expressões e declarações. Foram natural ter essa distinção em Fortran, porque (como esperado em uma linguagem Em que o formato de entrada foi cards perfurados), a linguagem foi orientada para linhas. As declarações não puderam ser dadas. Assim, enquanto você precisava de expressões para a matemática para trabalhar, não fazia sentido fazer qualquer outra coisa devolvendo um valor, porque não poderia haver nada esperando por isso.
Essa limitação desapareceu com a chegada dos idiomas estruturados em blocos , mas então já era tarde demais. A distinção entre expressões e declarações foi fortalecida. Foi transmitido da FORTRAN para Algol e de lá para seus descendentes. De fato, quando uma linguagem é feita inteiramente de expressões, você pode fazê-las como quiser. Você pode dizer (usando a sintaxe do arco):
(se foo (= x 1) (= x 2))
ou
(= x (se foo 1 2) – 7. Um tipo de símbolo. Os símbolos diferem das correntes em que a igualdade pode ser provada comparando um ponteiro.
8. Uma notação para o código usando árvores de símbolo.
9. Toda a linguagem está sempre disponível. Não há distinção real entre o tempo de leitura, o tempo de compilação e o tempo de execução. Você pode compilar ou executar o código durante a leitura, ler ou executar o código durante a compilação e ler ou compilar o código no tempo de execução.
Execute o código no tempo de leitura Permite que os usuários reprogramam a sintaxe lisp; Código de execução no tempo de compilação é a base das macros; Compilação a tempo de execução é a base do uso de linguagem de extensão em programas como Emacs; E a leitura do tempo de execução permite que os programas se comuniquem usando expressões-S, uma ideia reinventada recentemente como XML.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *