A linguagem Assembly é considerada uma linguagem de programação funcional?
É *considerada * uma linguagem de programação funcional? Não pela maioria das pessoas.
é *actualmente* uma linguagem? Não vejo porque não.
A Programação funcional é um paradigma, tal como a programação imperativa ou orientada a objectos. Não importa em que linguagem você programa, ela é transformada em código de máquina em algum ponto ... e assembler é apenas código de máquina bonita.
Então, você pode implementar qualquer paradigma que você quiser. E você pode aplicar qualquer técnica de optmização que quiser.
Você só tem que fazê-lo por si mesmo.
Considerar a seguinte implementação de FP factorial.
- function fact(n):
- função fact_inner(n, a):
- if n == 0
- return a
- return fact_inner(n-1, n*a)
- return fact_inner(n,1)
Sort of Pythonish, but it needs tail recursion optimizations to not blow the stack. We’ll ignore overflow for now.
In assembler, you just define a convention for passing arguments and returning the result. Let’s say we pass n in R0, and a in R1 and we return the result in R0
- fact:
- MOV #1, R1 ; a = 1
- inner_fact:
- CMP R0,#0
- BEQ ifact_010 ; if (n==0), we're done
- MUL R1,R0 ; a = n * a
- DEC R0 ; n = n - 1
- BRA inner_fact ; recurse (with TRO)
- ifact_010:
- MOV R1, R0 ; return a
- RET
And there you have it.
Artigos semelhantes
- Por que não existe uma linguagem de programação funcional nos dez primeiros?
- What does assembly language look like?
- Quais são as vantagens de uma linguagem de montagem na programação sobre uma linguagem de máquina?
- Em que linguagem de programação o Netflix está codificado? Como eu uso essa linguagem?