Interface de função externa
Uma Interface de função externa (do inglês Foreign function interface, FFI) é um mecanismo pela qual, um programa escrito em determinada linguagem e tecnologia, pode realizar chamadas, funções e comunicar-se outros programas e serviços de linguagens distintas.[1]
Terminologia
editarFoi descrito inicialmente pela especificação Common Lisp, posteriormente foi oficializado em Haskell.[2][3] Outras linguagens utilizam terminologias como Ada onde uso o termo como "language bindings", em java é denominado Java Native Interface, JNI. Entretanto é usado de forma genérica para ser referido a este mecanismo.
Apesar do nome, as FFIs não são limitadas à chamada de funções, muitos FFI permitem acesso aos métodos de objectos, transação de dados e objectos de distintas.[4] O termo foreign function interface não é usado para descrever o retorno de execuções em multi-linguagem como Microsoft Common Language Runtime, onde existe um "substrato" comum que permite a qualquer linguagem usar os serviços definido pelo outro (Interface), cumprindo como uma linguagem comum já especificada entre as partes, assim, determinados mecanismo como RMI, RPC, CORBA e SOAP, que permitem serviços escritos em outras linguagens e arquitecturas, não pode ser considerado como uma FFI.
Referências
- ↑ (em inglês)c2.com: Foreign function interface
- ↑ (em inglês)Introdução ao FFI
- ↑ (em inglês)Haskell 98 Foreign Function Interface
- ↑ (em inglês)Allegro Common Lisp