A STUDY N APIS FOR SCRIPTING LANGUAGES

Detalhes bibliográficos
Autor(a) principal: HISHAM HASHEM MUHAMMAD
Data de Publicação: 2006
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da PUC-RIO (Projeto Maxwell)
Texto Completo: https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497@1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497@2
Resumo: 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 534
spelling info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisA STUDY N APIS FOR SCRIPTING LANGUAGES ESTUDO SOBRE APIS DE LINGUAGENS DE SCRIPT 2006-08-28ROBERTO IERUSALIMSCHY75806894720lattes.cnpq.br/0427692772445368ROBERTO IERUSALIMSCHYRENATO FONTOURA DE GUSMAO CERQUEIRANOEMI DE LA ROCQUE RODRIGUEZLUIZ HENRIQUE DE FIGUEIREDONOEMI DE LA ROCQUE RODRIGUEZ00071157093lattes.cnpq.br/8198489262539174HISHAM HASHEM MUHAMMADPONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIROPPG EM INFORMÁTICAPUC-RioBRUm 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.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.COORDENAÇÃO DE APERFEIÇOAMENTO DO PESSOAL DE ENSINO SUPERIORhttps://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497@1https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497@2porreponame: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/openAccess2022-11-01T12:51:42Zoai: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.en.fl_str_mv A STUDY N APIS FOR SCRIPTING LANGUAGES
dc.title.alternative.pt.fl_str_mv ESTUDO SOBRE APIS DE LINGUAGENS DE SCRIPT
title A STUDY N APIS FOR SCRIPTING LANGUAGES
spellingShingle A STUDY N APIS FOR SCRIPTING LANGUAGES
HISHAM HASHEM MUHAMMAD
title_short A STUDY N APIS FOR SCRIPTING LANGUAGES
title_full A STUDY N APIS FOR SCRIPTING LANGUAGES
title_fullStr A STUDY N APIS FOR SCRIPTING LANGUAGES
title_full_unstemmed A STUDY N APIS FOR SCRIPTING LANGUAGES
title_sort A STUDY N APIS FOR SCRIPTING LANGUAGES
author HISHAM HASHEM MUHAMMAD
author_facet HISHAM HASHEM MUHAMMAD
author_role author
dc.contributor.advisor1.fl_str_mv ROBERTO IERUSALIMSCHY
dc.contributor.advisor1ID.fl_str_mv 75806894720
dc.contributor.advisor1Lattes.fl_str_mv lattes.cnpq.br/0427692772445368
dc.contributor.referee1.fl_str_mv ROBERTO IERUSALIMSCHY
dc.contributor.referee2.fl_str_mv RENATO FONTOURA DE GUSMAO CERQUEIRA
dc.contributor.referee3.fl_str_mv NOEMI DE LA ROCQUE RODRIGUEZ
dc.contributor.referee4.fl_str_mv LUIZ HENRIQUE DE FIGUEIREDO
dc.contributor.referee5.fl_str_mv NOEMI DE LA ROCQUE RODRIGUEZ
dc.contributor.authorID.fl_str_mv 00071157093
dc.contributor.authorLattes.fl_str_mv lattes.cnpq.br/8198489262539174
dc.contributor.author.fl_str_mv HISHAM HASHEM MUHAMMAD
contributor_str_mv ROBERTO IERUSALIMSCHY
ROBERTO IERUSALIMSCHY
RENATO FONTOURA DE GUSMAO CERQUEIRA
NOEMI DE LA ROCQUE RODRIGUEZ
LUIZ HENRIQUE DE FIGUEIREDO
NOEMI DE LA ROCQUE RODRIGUEZ
description 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 2006
dc.date.issued.fl_str_mv 2006-08-28
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497@1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497@2
url https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497@1
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=9497@2
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 PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO
dc.publisher.program.fl_str_mv PPG EM INFORMÁTICA
dc.publisher.initials.fl_str_mv PUC-Rio
dc.publisher.country.fl_str_mv BR
publisher.none.fl_str_mv PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO
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_ 1748324891701018624