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

editar

Foi 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

📚 Artikel Terkait di Wikipedia

Object-PL/SQL

object-oriented PL/SQL create or replace type base_type as object ( a number, constructor function base_type return self as result, member function func

Software

doi:10.2307/2310294. Consultado em 30 de abril de 2024  The Mathematical-Function Computation Handbook (em inglês). [S.l.: s.n.]  Buchholz, W.; Shapiro,

Singleton

MyClass Private Shared objetoSincronia As New Object Private Sub New() End Sub Public Shared Function getInstancia() As MyClass If _instancia Is Nothing

Modelo de Objeto de Documentos

O Modelo de Documento por Objetos (do inglês Document Object Model), mais conhecido pela abreviação DOM, é uma API multiplataforma baseada em eventos padronizada

Orientação a objetos

multi-paradigma com suporte nativo à POO, como por exemplo: C++, C#, VB.NET, Java, Object Pascal, Objective-C, Python, SuperCollider, Ruby e Smalltalk. Já as linguagens

Ciência da computação

Prototipação Outros Modelos SPICE CMMI MPS.BR Data model Function model Information model GQM Metamodelagem Object model Modelagem de sistemas View model Linguagens

R (linguagem de programação)

variáveis C, Z e X. library(caTools) # external package providing write.gif function jet.colors ← colorRampPalette(c("#00007F", "blue", "#007FFF", "cyan", "#7FFF7F"

Engenharia de software

Prototipação Outros Modelos SPICE CMMI MPS.BR Data model Function model Information model GQM Metamodelagem Object model Modelagem de sistemas View model Linguagens