Spelling suggestions: "subject:"luta."" "subject:"lula.""
11 |
[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.
|
12 |
[en] OPERATING SYSTEM KERNEL SCRIPTING WITH LUA / [pt] LUNATIK: SCRIPTING DE KERNEL DE SISTEMA OPERACIONAL COM LUALOURIVAL PEREIRA VIEIRA NETO 26 October 2011 (has links)
[pt] Existe uma abordagem de projeto para aumentar a flexibilidade de sistemas
operacionais, chamada sistema operacional extensível, que sustenta
que sistemas operacionais devem permitir extensoes para poderem atender
a novos requisitos. Existe também uma abordagem de projetos no desenvolvimento
de aplicações que sustenta que sistemas complexos devem permitir
que usuários escrevam scripts para que eles possam tomar as suas próprias
decisões de configuração em tempo de execução. Seguindo estas duas abordagens
de projeto, nos construímos uma infra-estrutura que possibilita que
usuários carreguem e executem dinamicamente scripts Lua dentro de kernels
de sistema operacional, aumentando a flexibilidade deles. Nesta dissertação,
nos apresentamos Lunatik, a nossa infra-estrutura para scripting de kernel
baseada em Lua, e mostramos um cenário de uso real no escalonamento
dinâmico da frequência e voltagem de CPU. Lunatik está implementado
atualmente tanto para NetBSD quanto para Linux. / [en] There is a design approach to improve operating system flexibility, called
extensible operating system, that supports that operating systems must
allow extensions in order to meet new requirements. There is also a design
approach in application development that supports that complex systems
should allow users to write scripts in order to let them make their own
configuration decisions at run-time. Following these two design approaches,
we have built an infrastructure that allows users to dynamically load and
run Lua scripts into operating system kernels, improving their flexibility.
In this thesis we present Lunatik, our scripting subsystem based on Lua,
and show a real usage scenario in dynamically scaling CPU frequency and
voltage. Lunatik is currently implemented both for NetBSD and Linux.
|
13 |
[en] UTILIZATION OF DHT IN DISTRIBUTED COMPUTING SYSTEMS / [pt] APLICAÇÕES DE DHT EM SISTEMAS DE MPUTAÇÃO DISTRIBUÍDAFELIPE FREIXO PINA 07 February 2012 (has links)
[pt] Arquiteturas P2P destacam-se pela descentralização e pelo incentivo
a cooperação entre nós. Essas características permitem que sistemas baseados
nesta arquitetura sejam tolerantes a falhas e que os recursos sejam distribu
ídos entre os nós (via replicação). A utilização da técnica de DHT na
criação de redes P2P permite que os sistemas sejam escaláveis. Ao contrário
do uso mais comum em sistemas de distribuição de conteúdo, este trabalho
investiga aplicacações da técnica de DHT em sistemas de computação distribu
ída, onde o recurso compartilhado é a capacidade de processamento de
cada nó. Quatro protocolos de roteamento de mensagens foram analisados
para identificar os mais adequados aos sistemas de computação distribuída
e aplicou-se o conceito de grupo de nós com o objetivo de aumentar a
tolerância a falhas e distribuir tarefas entre os nós da rede. / [en] P2P architectures are recognized for decentralization and incentive for
the cooperation among nodes. These characteristics allow for fault tolerance
and resource distribution among the nodes (by replication) to systems based
on the P2P architecture. Systems based in P2P networks built using the
DHT technique are scalable. Since this architecture is commonly used in
content distribution systems, in this work we investigate the utilization of
the DHT technique in distributed computing systems, where the shared
resources are the node’s computational power. Four routing protocols were
analyzed to identify the most appropriated for use in distributed computing
systems and applied the group concept to archive fault tolerance and
resource distribution among nodes.
|
14 |
[en] SAFE RECORD SHARING IN DYNAMIC PROGRAMMING LANGUAGES / [pt] COMPARTILHAMENTO SEGURO DE REGISTROS EM LINGUAGES DE PROGRAMAÇÃO DINÂMICASALEXANDRE RUPERT ARPINI SKYRME 29 February 2016 (has links)
[pt] Linguagens de programação dinâmicas estão cada vez mais populares e já
foram utilizadas para desenvolver uma ampla gama de aplicações. Enquanto
isso, processadores multi-núcleo se tornaram padrão, mesmo em computadores
pessoais e dispositivos móveis. Dessa forma, os programadores precisam
recorrer ao paralelismo para aprimorar o desempenho de seus programas.
Entretanto, a programação concorrente permanece difícil. Adicionalmente,
a despeito de avanços em linguagens estáticas, avaliamos que linguagens
dinâmicas ainda carecem de suporte adequado à concorrência. Nesta
tese argumentamos que o principal problema da programação concorrente é
a imprevisibilidade - comportamentos inesperados de programas, tais como
retornar valores descabidos. Observamos que a imprevisibilidade é mais
provável quando memória compartilhada é utilizada. Consequentemente,
propomos um modelo de comunicação para concorrência que visa disciplinar
o compartilhamento de memória em linguagens dinâmicas. O modelo
é baseado nos padrões emergentes de concorrência de não compartilhar dados
por padrão, imutabilidade de dados e tipos e efeitos (que transformamos
em capacidades). Ele demanda a utilização de objetos compartilháveis para
compartilhar dados e utiliza troca de mensagens para comunicação entre
fluxos de execução. Objetos compartilháveis podem ser compartilhados apenas para
leitura ou para leitura e escrita, o que permite acesso individual de
escrita e acessos paralelos de leitura. Implementamos um protótipo em Lua
para experimentar com o modelo na prática, bem como para conduzir uma
avaliação geral de desempenho. A avaliação demonstra que há benefícios na
utilização de memória compartilhada, mas ao mesmo tempo revela que os
controles utilizados para assegurar a disciplina ocasionam um impacto de
desempenho. / [en] Dynamic programming languages have become increasingly popular and
have been used to implement a range of applications. Meanwhile, multicore
processors have become the norm, even for desktop computers and
mobile devices. Therefore, programmers must turn to parallelism as a
means to improve performance. However, concurrent programming remains
difficult. Besides, despite improvements in static languages, we find dynamic
languages are still lacking in concurrency support. In this thesis, we argue
that the main problem with concurrent programming is unpredictability -
unexpected program behaviors, such as returning out-of-thin-air values. We
observe that unpredictability is most likely to happen when shared memory
is used. Consequently, we propose a concurrency communication model to
discipline shared memory in dynamic languages. The model is based on
the emerging concurrency patterns of not sharing data by default, data
immutability, and types and effects (which we turn into capabilities). It
mandates the use of shareable objects to share data. Besides, it establishes
that the only means to share a shareable object is to use message passing.
Shareable objects can be shared as read-write or read-only, which allows
both individual read-write access and parallel read-only access to data. We
implemented a prototype in Lua, called luashare, to experiment with the
model in practice, as well as to carry out a general performance evaluation.
The evaluation showed us that safe data sharing makes it easier to allow
for communication among threads. Besides, there are situations where
copying data around is simply not an option. However, enforcing control
over shareable objects has a performance cost, in particular when working
with nested objects.
|
15 |
[en] CONCURRENCY AND COORDINATION MODELS FOR EVENT-DRIVEN IN LUA / [pt] MODELOS DE CONCORRÊNCIA E COORDENAÇÃO PARA O DESENVOLVIMENTO DE APLICAÇÕES ORIENTADAS A EVENTOS EM LUABRUNO OLIVEIRA SILVESTRE 08 February 2010 (has links)
[pt] O uso de multithreading tem se popularizado como forma de separar a execução
de tarefas concorrentes e de alcançar maior desempenho aproveitando melhor o
tempo das CPUs. No entanto, a programação com threads não é uma tarefa fácil.
O uso dos recursos compartilhados deve ser coordenado, pois o acesso concorrente
aos mesmos, na maioria dos casos, gera inconsistência na aplicação. O
modelo de desenvolvimento orientado a eventos foi apontado por alguns como
uma boa alternativa na criação de aplicações. Nesse modelo, a tarefa é realizada
por um ou mais eventos, e um loop principal fica responsável por receber
e despachar esses eventos. Investigamos, neste trabalho, um modelo em Lua que
combina orientação a eventos com preempção sem trazer de volta os problemas
de programação concorrente. Investigamos também como características da linguagem
podem ser utilizadas para prover mecanismos de coordenação flexíveis.
Essas características podem ajudar, por exemplo, a compor novos mecanismos a
partir de existentes. / [en] Multithreading has become popular as a way to organize concurrent tasks and
achieve better performance from CPUs. However, programming with threads is
not an easy task. Usage of shared resources needs to be coordinated because
concurrent access to them, in most cases, may create inconsistency in the
application. The event-driven model has been pointed as a good alternative
to multithreaded programming. In this model, a task is performed by one or
more events, where a main loop is responsible for receiving and dispatching
these events. In this work, we investigate a model to combine event-driven
and preemption in Lua without bringing back all the concurrent programming
problems. We also investigate how the language’s characteristics can be used
to provide flexible coordination mechanisms. These characteristics can aid, for
example, to create new mechanisms based on the ones already existent.
|
16 |
[en] CONCURRENT PROGRAMMING IN LUA: REVISITING THE LUAPROC LIBRARY / [pt] PROGRAMAÇÃO CONCORRENTE EM LUA: REVISITANDO A BIBLIOTECA LUAPROCLIANDER MILLAN FERNANDEZ 09 June 2017 (has links)
[pt] Nos últimos anos, a tendência por aumentar o desempenho de um microprocessador, como uma solução alternativa para a crescente demanda por recursos computacionais de aplicações e sistemas, diminuiu significativamente. Isto levou a um aumento do interesse em utilizar ambientes multi-processados.
Embora muitos modelos e bibliotecas tenham sido desenvolvidos para oferecer suporte à programação concorrente, garantir que vários fluxos de execução acessem recursos compartilhados de forma controlada continua a ser uma tarefa complexa. A biblioteca Luaproc, que oferece suporte para a concorrência em
Lua, mostrou alguma promessa em termos de desempenho e casos de uso. Nesta tese, nós estudamos a biblioteca Luaproc e incorporamos-lhe novas funcionalidades a fim de torná-la mais amigável e estender o seu uso a novos cenários. Primeiro, nós apresentamos as motivações para nossas extensões a Luaproc, discutindo formas alternativas de lidar com as limitações existentes. Em seguida, nós apresentamos requisitos, características da implementação e limitações associadas a cada um dos mecanismos desenvolvidos como soluções alternativas a essas limitações. Finalmente, nós utilizamos as funcionalidades incorporadas na implementação de algumas aplicações concorrentes, a fim de avaliar o desempenho e testar o funcionamento adequado de tais mecanismos. / [en] In recent years, the tendency to increase the performance of a microprocessor, as an alternative solution to the increasing demand for computational resources of both applications and systems, has decreased
significantly. This has led to an increase of the interest in employing multiprocessing environments. Although many models and libraries have been developed to offer support for concurrent programming, ensuring that several execution ows access shared resources in a controlled way remains a complex task. The Luaproc library, which provides support for concurrency in Lua, has shown some promise in terms of performance and cases of use. In this thesis, we study the Luaproc library and incorporate to it new functionalities in order to make it more user friendly and extend its use to new scenarios. First, we introduce the motivations to our extensions to Luaproc, discussing alternative ways of dealing with the existing limitations. Then, we present requirements, characteristics of the implementation, and limitations associated to each of the mechanisms implemented as alternative solutions to these limitations. Finally, we employ the incorporated functionalities in implementing some concurrent applications, in order to evaluate the performance and test the proper functioning of such mechanisms.
|
17 |
[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.
|
18 |
[en] A FOREIGN FUNCTION INTERFACE FOR PALLENE / [pt] UMA INTERFACE DE FUNÇÕES EXTERNAS PARA PALLENEGABRIEL COUTINHO DE PAULA 10 December 2021 (has links)
[pt] Pallene é um subconjunto estaticamente tipado da linguagem de programação
Lua, projetada para atuar como uma linguagem de sistemas em
contraparte ao scripting de Lua, e usada para escrever bibliotecas de baixo
nível e módulos de extensão para Lua. Nesse sentido, Pallene é uma linguagem
companheira, usada sempre lado a lado com Lua, compartilhando seu runtime.
Pallene, tanto como uma linguagem de sistema em contraparte a Lua e
como uma ponte entre Lua e outras linguagens, deve fornecer um mecanismo
de interação com bibliotecas e serviços de sistema escritos em uma linguagem
de baixo nível como C. Para este fim, apresentamos um design e implementação
de Interface de Função Estrangeira (IFE) para Pallene, que permite chamar
funções externas que seguem as convenções de chamada C, e manipular
representações de dados C diretamente.
Nosso design equilibra flexibilidade e segurança seguindo uma abordagem
empírica, em que preferimos sacrificar flexibilidade hipotética a menos que
vejamos um caso de uso que nos faça comprometer em segurança. Nossa
implementação tem como objetivo ser tão portátil quanto o Pallene, além de
ter um bom desempenho e ser simples. Uma vez que a implementação de
Pallene já depende de um compilador de C, a nossa IFE usa agressivamente o
compilador de C já disponível para sua vantagem. Dessa forma, podemos usar
diretamente os arquivos de cabeçalho de bibliotecas externas, permitindo que
a IFE verifique a exatidão das ligações de função externa e que use macros de
C. / [en] Pallene is a statically typed subset of the Lua programming language, designed to act as a system-language counterpart to Lua’s scripting, and used to write lower-level libraries and extension modules for Lua. In this sense, Pallene is a companion language, always intended to be used side-by-side with
Lua, sharing its runtime. Pallene, both as a system-language counterpart to Lua and as a bridge between Lua and foreign languages, must provide a mechanism to interact with libraries and system services written in a low-level language like C. To this end, we present a Foreign Function Interface (FFI) design and implementation for Pallene, which allows for calling external functions that follow C calling conventions and manipulating C data representations directly. Our design balances flexibility and safety following an empirical approach, wherein we prefer to sacrifice hypothetical flexibility unless we see a
real use case that forces us to compromise on safety. Our implementation aims to be as portable as Pallene, as well as performant and simple. Since Pallene s implementation already depends on a C compiler, the FFI aggressively uses the already available C compiler to its advantage. This way, we can directly use foreign libraries header files, enabling the FFI to verify the correctness of function bindings and to use macro definitions.
|
19 |
[pt] A IMPLEMENTAÇÃO DE REGISTROS EM PALLENE / [en] THE IMPLEMENTATION OF RECORDS IN PALLENEGABRIEL DE QUADROS LIGNEUL 27 February 2020 (has links)
[pt] As características dinâmicas de linguagens de scripting introduzem um gargalo significativo no tempo de execução quando comparadas a linguagens de sistemas. A arquitetura scripting pode ser usada para melhorar o desempenho ruim de linguagens de scripting. O programador deve usar a linguagem de sistemas para tarefas que consomem muitos recursos, e a de scripting para flexibilidade. Entretanto, essa arquitetura tem duas falhas significativas quando usada para melhorar o desempenho de linguagens de
scripting. Primeiro, existe uma lacuna conceitual entre as duas linguagens, logo migrar da linguagem de scripting para linguagem de sistemas pode exigir enorme esforço. Segundo, existe um gargalo escondido ao manipular as estruturas de dados da linguagem de scripting a partir da linguagem de sistemas. Pallene é uma linguagem de sistemas projetada particularmente para Lua que almeja resolver essas duas falhas. Pallene é um subconjunto estaticamente tipado de Lua, o que facilita o processo de migração. Além disso, Pallene manipula diretamente as estruturas de dados de Lua sem introduzir gargalo. Neste trabalho, nós propomos dois tipos de registros para Pallene, e nós apresentamos a implementação do compilador de Pallene. Nós avaliamos o desempenho do nosso compilador para compará-la com Lua padrão, LuaJIT, e programas C que utilizam a API C de Lua. Nossos experimentos mostram que Pallene é competitiva com as soluções existentes para melhorar o desempenho de Lua. / [en] The dynamic features of scripting languages introduce significant overhead in execution time when compared to system languages. The scripting architecture can be used to improve the poor performance of scripting languages. The programmer should use a system language for resourceintensive tasks, and a scripting one for flexibility. However, this architecture has two significant flaws when used to improve the performance of scripting languages. First, there is a conceptual gap between both languages; so migrating from the scripting language to the system language may require enormous effort. Second, there is a hidden overhead when manipulating the scripting-language data structures from the system language. Pallene is a system language designed particularly for Lua that aims to solve these two issues. Pallene is a statically-typed subset of Lua, which facilitates the migration process. Moreover, Pallene manipulates Lua s data structures directly without introducing overhead. In this work, we propose two types of records for Pallene, and we present the implementation of the Pallene compiler. We benchmarked our compiler to compare it to standard Lua, LuaJIT, and C programs using the Lua-C API. Our experiments show that Pallene is competitive with the existing solutions to improve Lua s performance.
|
20 |
Influências do meio ambiente no parto / Environment influences on childbirthOchiai, Angela Megumi 17 December 2008 (has links)
Introdução: As influências lunares e ambientais no início do trabalho de parto ainda são pouco estudadas. Foi avaliada a influência extrínseca em eventos obstétricos. Métodos: em um hospital secundário, situado na cidade de São Paulo, Brasil, foram selecionados 1.826 dias em que ocorreram 17.417 partos. As internações por o trabalho de parto foram associadas à temperatura ambiental, pressão atmosférica, variação das marés e das fases lunares na incidência do excesso deste evento, pelo percentil 75. O índice Z (desvio padrão/ pela média) de cada variável foi calculado e a diferença diária indicou o aumento ou a diminuição. Foi utilizada a análise de regressão logística para a predição do excesso da admissão e p<0,05 foi considerado significativo. Resultados: Os preditores do excesso da internação por trabalho de parto foram: o aumento da temperatura (risco relativo: 1,742, p=0,045) e diminuição da pressão atmosférica (risco relativo: 1,269, p=0,029). O aumento da amplitude das marés foi associado com a probabilidade menor do excesso da internação (risco relativo: 0,762, p=0,030). A fase lunar não era preditora do excesso da admissão (p=0,339). Conclusão: Pela análise multivariada, o aumento da temperatura e a diminuição da pressão atmosférica predisseram a ocorrência do excesso da admissão por trabalho de parto e o aumento da amplitude das marés, como uma medida da força gravitacional lunar, foi preditora de uma menor probabilidade do excesso do trabalho de parto / Background: lunar and environmental influences in vaginal delivery remain unclear. We assessed extrinsic influence in obstetric events. Methods: in a secondary line hospital, located in São Paulo city, Brazil, we selected 1,826 days, in which occurred 17,417 admissions for obstetric labor, and we studied influence of air temperature, atmospheric pressure, tides range, and lunar phases in incidence of excess of obstetric labor, defined as more than 9 admissions per day. Z score (standard deviation from mean) of each variable was calculated, and diary difference to indicate increase or decrease was assessed by logistic regression for prediction of admission excess. Two-side P< 0.05 was considered significant. Results: predictors of admission excess were increase of temperature (relative risk: 1.742, P=0.045), and decrease of atmospheric pressure (relative risk: 1.269, p=0.029). Increase of tides range was associated with lower probability of admission excess (relative risk: 0.762, P=0.030). Lunar phases was not predictor of admission excess (P=0,339). Conclusion: By multivariate analysis, increase of temperature and decrease of atmospheric pressure predicted occurrence of excess of obstetric labor admission, and increase of tidal range, as lunar gravitational force measurement, predicted lower probability of admission excess
|
Page generated in 0.0456 seconds