[en] A STUDY N APIS FOR SCRIPTING LANGUAGES
| Ano de defesa: | 2007 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| Tipo de documento: | Tese |
| Tipo de acesso: | Acesso aberto |
| Idioma: | por |
| Instituição de defesa: |
MAXWELL
|
| Programa de Pós-Graduação: |
Não Informado pela instituição
|
| Departamento: |
Não Informado pela instituição
|
| País: |
Não Informado pela instituição
|
| Palavras-chave em Português: | |
| Link de acesso: | https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497&idi=1 https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497&idi=2 http://doi.org/10.17771/PUCRio.acad.9497 |
Resumo: | [pt] Um cenário comum atualmente é o de aplicações desenvolvidas usando duas linguagens de programação a fim de otimizar partes onde o desempenho é crítico e permitir extensibilidade através de scripts escritos pelo usuário. Há várias formas de se obter esse tipo de interoperabilidade; idealmente, entretanto, uma linguagem deve prover uma interface de acesso externo (foreign language interface, FLI) que permita ao programador receber e enviar tanto chamadas como dados para outra linguagem. Este trabalho discute as principais questões envolvendo o projeto de APIs para integração de ambientes de execução de linguagens em aplicações C. Apresentamos os principais problemas enfrentados na interação entre código executando em um ambiente com características inerentemente dinâmicas como o de uma linguagem de script com código C. Comparamos aqui as abordagens empregadas por cinco linguagens no tratamento da comunicação entre os espaços de dados de C e do ambiente de execução embutido e as conseqüências destas abordagens no gerenciamento de memória, bem como no compartilhamento de código entre a aplicação C e o da linguagem de script. Ilustramos as diferenças das APIs destas linguagens e o impacto destas no código resultante de uma aplicação C através de um estudo de caso. Diferentes linguagens de script são embutidas como plugins de uma mesma biblioteca, que por sua vez expõe a aplicações clientes uma API genérica de scripting. Assim, o código de cada plugin permite observar de forma clara e isolada os procedimentos adotados em cada linguagem para chamada de funções, registro de funçoes C e conversão de dados entre os ambientes. |
| id |
PUC_RIO-1_afe8a2caa549639d24d3fe5817808842 |
|---|---|
| oai_identifier_str |
oai:MAXWELL.puc-rio.br:9497 |
| network_acronym_str |
PUC_RIO-1 |
| network_name_str |
Repositório Institucional da PUC-RIO (Projeto Maxwell) |
| repository_id_str |
|
| spelling |
[en] A STUDY N APIS FOR SCRIPTING LANGUAGES [pt] ESTUDO SOBRE APIS DE LINGUAGENS DE SCRIPT [pt] LINGUAGENS DE SCRIPT[pt] INTERFACES PARA PROGRAMACAO DE APLICACOES[pt] LINGUAGENS DE PROGRAMACAO[en] SCRIPTING LANGUAGES[en] APPLICATION PROGRAMMING INTERFACES[en] PROGRAMMING LANGUAGES[pt] Um cenário comum atualmente é o de aplicações desenvolvidas usando duas linguagens de programação a fim de otimizar partes onde o desempenho é crítico e permitir extensibilidade através de scripts escritos pelo usuário. Há várias formas de se obter esse tipo de interoperabilidade; idealmente, entretanto, uma linguagem deve prover uma interface de acesso externo (foreign language interface, FLI) que permita ao programador receber e enviar tanto chamadas como dados para outra linguagem. Este trabalho discute as principais questões envolvendo o projeto de APIs para integração de ambientes de execução de linguagens em aplicações C. Apresentamos os principais problemas enfrentados na interação entre código executando em um ambiente com características inerentemente dinâmicas como o de uma linguagem de script com código C. Comparamos aqui as abordagens empregadas por cinco linguagens no tratamento da comunicação entre os espaços de dados de C e do ambiente de execução embutido e as conseqüências destas abordagens no gerenciamento de memória, bem como no compartilhamento de código entre a aplicação C e o da linguagem de script. Ilustramos as diferenças das APIs destas linguagens e o impacto destas no código resultante de uma aplicação C através de um estudo de caso. Diferentes linguagens de script são embutidas como plugins de uma mesma biblioteca, que por sua vez expõe a aplicações clientes uma API genérica de scripting. Assim, o código de cada plugin permite observar de forma clara e isolada os procedimentos adotados em cada linguagem para chamada de funções, registro de funçoes C e conversão de dados entre os ambientes.[en] Applications written in two programming languages, in order to optimize parts where performance is critical or to obtain extensibility through userwritten scripts, are commonplace nowadays. There are several ways to obtain this kind of interoperability; ideally, however, a language should provide a foreign language interface (FLI), allowing the programmer to send and receive both data and function calls to the external language. This work discusses the main issues involving the design of APIs for the integration of language environments within C applications. We present the main problems faced in the interaction between code executed in an environment with inherently dynamic characteristics such as a scripting language and C code. We compare the approaches employed by five languages when handling communication between the data spaces of C and the embedded runtime environment and the consequences of these approaches in memory management, as well as sharing of code between the C application and that from the scripting language. We illustrate the differences of the APIs of those languages and their impact in the resulting code of a C application through a case study. Different scripting languages were embedded as plugins for a library, which on its turn exposes to client applications a generic scripting API. This way, the code of each plugin allows us to observe in a clear and isolated way the procedures adopted by each language for function calls, registration of C functions and conversion of data between the environments.MAXWELLROBERTO IERUSALIMSCHYHISHAM HASHEM MUHAMMAD2007-01-26info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesishttps://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497&idi=1https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497&idi=2http://doi.org/10.17771/PUCRio.acad.9497porreponame:Repositório Institucional da PUC-RIO (Projeto Maxwell)instname:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)instacron:PUC_RIOinfo:eu-repo/semantics/openAccess2019-06-26T00:00:00Zoai:MAXWELL.puc-rio.br:9497Repositório InstitucionalPRIhttps://www.maxwell.vrac.puc-rio.br/ibict.phpopendoar:5342019-06-26T00:00Repositório Institucional da PUC-RIO (Projeto Maxwell) - Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)false |
| dc.title.none.fl_str_mv |
[en] A STUDY N APIS FOR SCRIPTING LANGUAGES [pt] ESTUDO SOBRE APIS DE LINGUAGENS DE SCRIPT |
| title |
[en] A STUDY N APIS FOR SCRIPTING LANGUAGES |
| spellingShingle |
[en] A STUDY N APIS FOR SCRIPTING LANGUAGES HISHAM HASHEM MUHAMMAD [pt] LINGUAGENS DE SCRIPT [pt] INTERFACES PARA PROGRAMACAO DE APLICACOES [pt] LINGUAGENS DE PROGRAMACAO [en] SCRIPTING LANGUAGES [en] APPLICATION PROGRAMMING INTERFACES [en] PROGRAMMING LANGUAGES |
| title_short |
[en] A STUDY N APIS FOR SCRIPTING LANGUAGES |
| title_full |
[en] A STUDY N APIS FOR SCRIPTING LANGUAGES |
| title_fullStr |
[en] A STUDY N APIS FOR SCRIPTING LANGUAGES |
| title_full_unstemmed |
[en] A STUDY N APIS FOR SCRIPTING LANGUAGES |
| title_sort |
[en] A STUDY N APIS FOR SCRIPTING LANGUAGES |
| author |
HISHAM HASHEM MUHAMMAD |
| author_facet |
HISHAM HASHEM MUHAMMAD |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
ROBERTO IERUSALIMSCHY |
| dc.contributor.author.fl_str_mv |
HISHAM HASHEM MUHAMMAD |
| dc.subject.por.fl_str_mv |
[pt] LINGUAGENS DE SCRIPT [pt] INTERFACES PARA PROGRAMACAO DE APLICACOES [pt] LINGUAGENS DE PROGRAMACAO [en] SCRIPTING LANGUAGES [en] APPLICATION PROGRAMMING INTERFACES [en] PROGRAMMING LANGUAGES |
| topic |
[pt] LINGUAGENS DE SCRIPT [pt] INTERFACES PARA PROGRAMACAO DE APLICACOES [pt] LINGUAGENS DE PROGRAMACAO [en] SCRIPTING LANGUAGES [en] APPLICATION PROGRAMMING INTERFACES [en] PROGRAMMING LANGUAGES |
| description |
[pt] Um cenário comum atualmente é o de aplicações desenvolvidas usando duas linguagens de programação a fim de otimizar partes onde o desempenho é crítico e permitir extensibilidade através de scripts escritos pelo usuário. Há várias formas de se obter esse tipo de interoperabilidade; idealmente, entretanto, uma linguagem deve prover uma interface de acesso externo (foreign language interface, FLI) que permita ao programador receber e enviar tanto chamadas como dados para outra linguagem. Este trabalho discute as principais questões envolvendo o projeto de APIs para integração de ambientes de execução de linguagens em aplicações C. Apresentamos os principais problemas enfrentados na interação entre código executando em um ambiente com características inerentemente dinâmicas como o de uma linguagem de script com código C. Comparamos aqui as abordagens empregadas por cinco linguagens no tratamento da comunicação entre os espaços de dados de C e do ambiente de execução embutido e as conseqüências destas abordagens no gerenciamento de memória, bem como no compartilhamento de código entre a aplicação C e o da linguagem de script. Ilustramos as diferenças das APIs destas linguagens e o impacto destas no código resultante de uma aplicação C através de um estudo de caso. Diferentes linguagens de script são embutidas como plugins de uma mesma biblioteca, que por sua vez expõe a aplicações clientes uma API genérica de scripting. Assim, o código de cada plugin permite observar de forma clara e isolada os procedimentos adotados em cada linguagem para chamada de funções, registro de funçoes C e conversão de dados entre os ambientes. |
| publishDate |
2007 |
| dc.date.none.fl_str_mv |
2007-01-26 |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
| format |
doctoralThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497&idi=1 https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497&idi=2 http://doi.org/10.17771/PUCRio.acad.9497 |
| url |
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497&idi=1 https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497&idi=2 http://doi.org/10.17771/PUCRio.acad.9497 |
| dc.language.iso.fl_str_mv |
por |
| language |
por |
| dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
| eu_rights_str_mv |
openAccess |
| dc.publisher.none.fl_str_mv |
MAXWELL |
| publisher.none.fl_str_mv |
MAXWELL |
| dc.source.none.fl_str_mv |
reponame:Repositório Institucional da PUC-RIO (Projeto Maxwell) instname:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO) instacron:PUC_RIO |
| instname_str |
Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO) |
| instacron_str |
PUC_RIO |
| institution |
PUC_RIO |
| reponame_str |
Repositório Institucional da PUC-RIO (Projeto Maxwell) |
| collection |
Repositório Institucional da PUC-RIO (Projeto Maxwell) |
| repository.name.fl_str_mv |
Repositório Institucional da PUC-RIO (Projeto Maxwell) - Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO) |
| repository.mail.fl_str_mv |
|
| _version_ |
1856395894301130752 |