1 |
[en] INTEGRATING THE LUA LANGUAGE AND THE COMMON LANGUAGE RUNTIME / [pt] INTEGRAÇÃO ENTRE A LINGUAGEM LUA E O COMMON LANGUAGE RUNTIMEFABIO MASCARENHAS DE QUEIROZ 27 May 2004 (has links)
[pt] O Common Language Runtime (CLR) é uma plataforma criada
com o objetivo de facilitar a interoperabilidade entre
diferentes linguagens de programação, através de uma
linguagem intermediária (a Common Intermediate Language,
ou CIL) e um sistema de tipos comum (o Common Type System,
ou CTS). Lua é uma linguagem de script flexível e de
sintaxe simples; linguagens de script são frequentemente
usadas para juntar componentes escritos em outras
linguagens, para construir protótipos de aplicações, e em
arquivos de configuração. Este trabalho apresenta duas
abordagens de integração entre a linguagem Lua e o CLR,
com o objetivo de permitir que scripts Lua instanciem e
usem componentes escritos para o CLR. A primeira
abordagem é a de criar uma ponte entre o interpretador
Lua e o CLR, sem modificar o interpretador. Os recursos e
a implementação desta ponte são mostrados, e ela é
comparada com trabalhos que seguem a mesma abordagem. A
segunda abordagem é a de compilar as instruções da
máquina virtual do interpretador Lua para instruções da
Common Intermediate Language Do CLR, sem introduzir
mudanças na linguagem Lua. A implementação de
um compilador de instruções Lua para CIL é mostrada, e o
desempenho de scripts compilados por ele é comparado com
o desempenho dos mesmos scripts executados pelo
interpretador Lua e com o de scripts equivalentes
compilados por outros compiladores de linguagens de
script para o CLR. / [en] The Common Language Runtime (CLR) is a platform that aims
to make the interoperability among different programming
languages easier, by using a common language (the Common
Intermediate Language, or CIL) and a common type system
(the Common Type System, or CTS). Lua is a flexible
scripting language with a simple syntax; scripting
languages are frequently used to join components written in
other languages, to build application prototypes, and in
configuration files. This work presents two approachs for
integratiion between the Lua language and the CLR, with the
objective of allowing Lua scripts to instantiate and
use components written for the CLR. The first approach is
to create a bridge between the Lua interpreter and the CLR,
without changing the interpreter. The features and
implementation of this bridge are shown, and it is compared
with other work following the same approach. The second
approach is to compile the virtual-machine instructions of
the Lua interpreter to instructions of the CLR s Common
Intermediate Language, without introducing changes to the
Lua language. The implementation of a Lua instructions to
CIL compiler is shown, and the performance of scripts
compiled by it is compared with the performance of the same
scripts run by the Lua interpreter and with the performance
of equivalent scripts compiled by compilers of other
scripting language to the CLR.
|
2 |
[en] CONVERTING REGEXES TO PEGS / [pt] CONVERSÃO DE REGEXES PARA PARSING EXPRESSION GRAMMARSMARCELO OIKAWA 28 January 2011 (has links)
[pt] Expressões regulares são um formalismo utilizado para descrever linguagens
regulares e compõem a base de diversas bibliotecas de casamento de padrão.
No entanto, existem determinados padrões úteis que são complexos ou
impossíveis de serem descritos com expressões regulares puras. Devido a
essas limitações, linguagens de script modernas disponibilizam bibliotecas
de casamento de padrões baseadas em regexes, isto é, extensões de expressões
regulares compostas, principalmente, por construções ad-hoc que focam em
problemas específicos. Apesar de serem muito úteis na prática, os regexes
possuem implementações complexas e distantes do formalismo original
de expressões regulares. Parsing Expression Grammars (PEG) são uma
alternativa formal para reconhecer padrões e possuem mais expressividade
que expressões regulares sem necessitar de contruções ad-hoc. O objetivo
deste trabalho é estudar formas de conversão de regexes para PEGs.
Para isso, estudamos as implementações atuais de regexes e mostramos a
conversão de algumas construções para PEGs. Por fim, apresentamos uma
implementação da conversão de regexes para PEGs para a linguagem Lua. / [en] Regular expressions are a formalism used to describe regular languages
and form the basis of several pattern-matching libraries. However, many
interesting patterns either are difficult to describe or cannot be described
by pure regular expressions. Because of these limitations, modern scripting
languages have pattern matching libraries based on regexes, ie, extensions
of regular expressions mainly composed by a set of ad-hoc constructions
that focus on specific problems. Although very useful in practice, these
implementations are complex and distant from the original formalism of
regular expressions. Parsing Expression Grammars (PEG) are a formal
alternative to recognize patterns and it is much more expressive than pure
regular expressions and does not need use ad-hoc constructions. The goal of
this work is to study the convertion of regexes to PEGs. To accomplish this
task, we studied the current implementations of regexes and show how to
convert some constructions to PEGs. Finally, we present an implementation
that convert regexes to PEGs for the Lua language.
|
3 |
[en] LUATS A REACTIVE EVENT-ORIENTED TUPLE SPACE / [pt] LUATS UM ESPAÇO DE TUPLAS REATIVO ORIENTADO A EVENTOSMARCUS AMORIM LEAL 11 June 2003 (has links)
[pt] Com a evolução da Internet e o crescente sucesso de
ambientes Web como plataformas genéricas de aplicação,
expandiram-se as necessidades de integração e coordenação
de componentes de software heterogêneos e autônomos. Os
requisitos específicos deste contexto impulsionaram uma
nova leva de trabalhos sobre mecanismos de coordenação,
dentre os quais o espaço de tuplas reativo. Neste
trabalho
apresentamos LuaTS, um espaço de tuplas reativo com uma
dinâmica de execução orientada a eventos e com suporte
apenas a chamadas assíncronas. Desenvolvido em Lua, o
sistema incorpora funcionalidades diferenciadas que
permitem ao programador expandir a sua semântica básica e
flexibilizam o processo de busca e recuperação de tuplas.
Descrevemos a implementação de LuaTS e exploramos suas
particularidades através de alguns exemplos, incluindo
problemas clássicos de programação concorrente e
distribuída. Conforme ilustramos, os benefícios do
desacoplamento proporcionado pelo modelo de espaço de
tuplas, aliados à dinâmica de programação orientada a
eventos, simplificam a sincronização inter-processos e
geram um fluxo de execução mais claro, reduzindo em muitos
casos o esforço associado ao desenvolvimento de
aplicações
distribuídas. / [en] The widespread use of the Internet along with the rapid
growth and acceptance of the Web as a general application
platform impose new requirements associated with the
integration and coordination of autonomous and heterogeneous
software components. The specific needs of this context led
to the development of new coordination mechanisms, among
which the reactive tuple space. In this work we present
LuaTS, a reactive, event oriented tuple space that supports
only asynchronous calls. The system, developed
in Lua, provides functionalities that allow programmers to
extend its basic semantics and also support a more flexible
tuple search and retrieval process. We describe the
implementation of LuaTS and explore its features
through different examples that include classic concurrent
and distributed programming problems. We show that the
uncoupling provided by the tuple space model, together with
an event oriented programming dynamics,simplify inter-
process synchronization and yield a clear execution stream,
improving, in many cases, the development process of
distributed applications.
|
Page generated in 0.042 seconds