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
- 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
- x86
Referências
- ↑ a b c «C/C++ Calling Conventions». Intel® C++ Compiler Classic Developer Guide and Reference (PDF). [S.l.]: Intel. 2022. pp. 80–84
- ↑ 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