Linguagem de Comando Guardada
O Linguagem de Comando Guardada (GCL) é uma linguagem de programação definida por Edsger Dijkstra para semântica de transformador de predicados em EWD472.[1] Ele combina conceitos de programação de forma compacta. Ele torna mais fácil desenvolver um programa e sua prova lado a lado, com as ideias de prova liderando o caminho; além disso, partes de um programa podem de fato ser calculadas.
Uma propriedade importante do GCL é o nondeterminismo. Por exemplo, na declaração if, várias alternativas podem ser verdadeiras, e a escolha de qual escolher é feita em tempo de execução, quando a declaração if é executada. Isso liberta o programador de ter que fazer escolhas desnecessárias e é uma ajuda no desenvolvimento formal de programas.
GCL inclui a declaração de atribuição múltipla. Por exemplo, a execução da declaração x, y:= y, x
é feita primeiro avaliando os valores do lado direito e depois armazenando-os nas variáveis do lado esquerdo. Assim, esta declaração troca os valores de x e y.
Os seguintes livros discutem o desenvolvimento de programas usando GCL:
- Dijkstra, Edsger W. (1976). A Discipline of Programming. [S.l.]: Prentice Hall. ISBN 978-0132158718
- Gries, D. (1981). The Science of Programming. Col: Monographs in Computer Science (em inglês, espanhol, japonês, chinês, italiano, e russo). New York: Springer Verlag. ISBN 978-0-387-96480-5. doi:10.1007/978-1-4612-5983-1
- Dijkstra, Edsger W.; Feijen, Wim H.J. (1988). A Method of Programming. Boston, MA: Addison-Wesley Longman Publishing Co., Inc. 200 páginas. ISBN 978-0-201-17536-3
- Kaldewaij, Anne (1990). Programming: the derivation of algorithms. [S.l.]: Prentice-Hall, Inc. ISBN 0132041081
- Cohen, Edward (1990). David Gries, ed. Programming in the 1990s: An introduction to the calculation of programs. Col: Texts and Monographs in Computer Science. [S.l.]: Springer Verlag. ISBN 978-1-4613-9706-9. doi:10.1007/978-1-4613-9706-9
Referências
- ↑ Dijkstra, Edsger W. «EWD472: Guarded commands, non-determinacy and formal. derivation of programs.» (PDF). Consultado em Agosto 16, 2006