Convenção de chamada de funções

Em ciência da computação, convenção de chamadas de função é o esquema pelo qual as funções de um programa recebem parâmetros e como elas retornam um resultado. Essas convenções diferem de acordo com as linguagens de programação, os sistemas operacionais e CPUs.[1] Essa diversidade de ambientes causa dificuldades na implementação de compiladores para execução de programas em diferentes sistemas operacionais e processadores.[2]

Compiladores de linguagens de alto nível como C/C++, Pascal ou Java, usam essas convenções para permitir chamadas de função. Nas linguagens de alto nível, o esquema de chamadas é transparente ao programador. O compilador contudo é responsável pela criação do código de máquina para cada função que o programador chama dentro do seu programa. Essa implementação também pode ser feita pelo programador em linguagem de montagem (assembly).[1][2]

Processadores como os da Intel possuem mais de uma convenção de chamada de função.[1]

Bibliografia editar

  • Andrew A. Chien (2022). «2.4 Machine Instructions and Basic Software Structures». Computer Architecture for Scientists. [S.l.: s.n.] ISBN 9781316518533 

Ver também editar

Referências

  1. a b c «C/C++ Calling Conventions». Intel® C++ Compiler Classic Developer Guide and Reference (PDF). [S.l.]: Intel. 2022. pp. 80–84 
  2. a b Christian Lindig (2005). «Random testing of C calling conventions». AADEBUG'05: Proceedings of the sixth international symposium on Automated analysis-driven debugging. doi:10.1145/1085130.1085132. For each supported platform a compiler must implement such a calling convention [...] In a C compiler, function calls are difficult to implement correctly because they must respect a platform-specific calling convention