Vous êtes sur la page 1sur 9

Peter Lucas Gomes Costa Branco

ORGANIZAO DO AMBIENTE DE DESENVOLVIMENTO Ambiente de Execuo (RUNTIME)

Manaus AM 2012

Peter Lucas Gomes Costa Branco

ORGANIZAO DO AMBIENTE DE DESENVOLVIMENTO Ambiente de Execuo (RUNTIME)

Trabalho de pesquisa solicitado pelo Professor Especialista Josu Froner, com o intuito de obteno de nota parcial para a matria de compiladores do curso de Graduao Bacharel em Sistemas de Informao.

Manaus AM 2012

SUMRIO

IMPORTNCIA, HISTRICO .................................................................................... 4 REPRESENTAO DE DADOS................................................................................. 4 AVALIAES DE EXPRESSES (INTRUES) .................................................... 5 ROTINAS ...................................................................................................................... 6 RUNTIME (TEMPO DE EXECUO) ....................................................................... 7 RUNTIME BIBLIOTECA ............................................................................................ 7

IMPORTNCIA, HISTRICO O tempo de execuo ou runtime (terminologia na lngua inglesa), considera-se ser perodo em que um programa de computador permanece em execuo, o termo tambm pode se referir a uma mquina virtual que gerencia um programa escrito em uma linguagem de computador enquanto est sendo executado. Sua importncia est voltada a o estudo de como funcionam os processos de interao PROGRAMA x HARDWARE, em alguns casos como o exemplo do Plataforma Java, o termo tempo de execuo est ligado ao termo tempo de compilao, que uma referncia ao perodo em que o cdigo compilado para gerar um programa executvel. Um ambiente de tempo de execuo um estado da mquina virtual que proporciona servios de software para processos ou programas enquanto o computador est rodando. Ele pode pertencer ao sistema operacional mesmo, ou ao programa que roda abaixo dele. O propsito inicial alcanar o objetivo de programao "independente de plataforma". Atividades de tempo de execuo incluem carregar e ligar bibliotecas necessrias para executar o programa, gerao de cdigo de mquina opcional e otimizao dinmica do programa, e a execuo do programa de fato.

REPRESENTAO DE DADOS Variveis simples: geralmente so representados por posies de memria suficientemente grandes para manter eles: Strings: 1 ou 2 bytes Inteiros: 2, 4 ou 8 bytes Float: 4 a 16 bytes Os valores booleanos: 1 bit (na maioria das vezes, pelo menos 1 byte completo deve ser usados) persons, curtos, inteiros, booleanos, e outros familiares do 4

tipo inteiro so normalmente armazenados sob uma forma polinmio binrio, com algum mecanismo como um ou dois sendo muita das vezes complementado para uso de valores negativos. Carregamento de arquivos e duplas so quase universalmente representados com o uso do padro IEEE na representao dos pontos flutuantes, apesar de alguns processadores arquiteturas dar suporte a extenses.

Figure 1 . Exemplificao das representao de Dados

AVALIAES DE EXPRESSES (INTRUES) So muito semelhantes as avaliars de estruturas, em que os campos so as variveis de instncia para o classe. Mtodos no so armazenados no prprio objeto. Por despacho dinmico, um extra Escondido ponteiro dentro de cada referncias a objetos um pedao de informao de classe de toda compartilhada (muitas vezes chamado de vtable) que fornece informaes sobre os mtodos da classe. Se um idioma no suporta dinmico expedio ou se uma classe no define todos os mtodos que requerem-lo, como seria o caso para uma classe sem mtodos virtuais (em C + +), ou uma classe com apenas privada e final mtodos (em Java), pode no haver necessidade para o elemento de VTABLE ou VPTR em representao do objeto.

Figure 2 Exemplificao do Processo de avaliao 5

As instrues em si so tambm codificados usando padres de bits, geralmente em tamanho da palavra nativa. Os bits de diferentes na codificao indicam que a informao, est obtendo uma carga nos quais registros esto sendo usados na operao, e assim por diante. Muitas linguagens compiladas no registram qualquer tipo de informao com as variveis sendo armazenada. Assim, quando examinando o contedo do endereo 1000, no claro se a valor deve ser interpretado como um ponteiro, curto casal, instruo, ou o que quer. Linguagens como LISP ou Smalltalk que suportem identificao do tipo extensa tempo de execuo no marcar cada varivel com uma etiqueta de tipo que permite que o sistema de execuo para determinar o escreva para permitir a execuo de verificao de tipo e para ativar o comportamento polimrfico.

ROTINAS As rotinas tendem a variar de acordo com a particularidade das linguagens, abaixo esto descritas algumas especificaes de funcionamento e rotinas de linguagens comummente utilizadas no ambiente de sofwtare e hardware. Em vFortran, o sistema de tempo de execuo consistiu basicamente das subrotinas da biblioteca padro, tais como SQRT () (raiz quadrada) e as rotinas que implementaram as especificaes FORMATO. Notveis exemplos iniciais de tempo de execuo de sistemas so os intrpretes para BASIC e Lisp. Esta ltima incluiu tambm um coletor de lixo. Forth um exemplo precoce de uma lngua que foi projetado para ser compilado em pseudocdigo; seu sistema run-time era uma mquina virtual que interpretou que pseudocdigo. Outro popular, se terica exemplo, o computador Donald Knuth MIX Em C e linguagens posteriores que apoiaram a alocao de memria dinmica, o tempo de execuo tambm incluiu uma biblioteca que conseguiu piscina do programa de memria. Nos idiomas, programao orientada a objeto, o sistema de tempo de execuo foi muitas vezes responsvel tambm pela verificao de tipo dinmico e resolver referncias de mtodos. Sistemas run-time pode ser uma mquina de cdigo P ou mquina virtual, que esconde mesmo o conjunto de instrues do processador. Esta a abordagem seguida por muitas linguagens interpretadas como AWK, e algumas linguagens como

Java que se destinam a ser compilado em um pseudocdigo independente de mquina (bytecode). Este arranjo simplifica a tarefa de implementao da linguagem e sua adaptao s mquinas diferentes, e permite que recursos de linguagem sofisticados, como reflexo. Ele tambm permite que o mesmo programa para ser executado em qualquer mquina sem recompilar, uma caracterstica que se tornou muito importante, pois a difuso da World Wide Web.

RUNTIME (TEMPO DE EXECUO) Considera-se como sendo o tempo de funcionamento, tempo de execuo, ou execuo o tempo durante o qual o programa est sendo executado (execuo), em contraste com outras fases do ciclo de vida de um programa como o tempo de compilao, tempo de ligao, tempo de carga, etc Um erro de tempo de execuo detectado aps ou durante a execuo de um programa, enquanto que um erro de tempo de compilao detectado pelo compilador antes do programa sempre executado. A verificao de tipo, a alocao de armazenamento, gerao de cdigo, e otimizao de cdigo so tipicamente feito em tempo de compilao, mas pode ser feito em tempo de execuo, dependendo da lngua em particular e do compilador.

RUNTIME BIBLIOTECA Na programao de computadores, uma biblioteca uma biblioteca de programa especial usado por um compilador, para implementar funes em uma linguagem de programao, durante a execuo (runtime) de um programa de computador. Isso muitas vezes inclui funes para entrada e sada, ou para gerenciamento de memria. Quando o cdigo fonte de um programa de computador traduzido para a lngua-alvo respectivo por um compilador, que causaria um aumento extremo de cdigo de programa se cada comando no programa e todas as chamadas para uma funo interna causaria a gerao no local do cdigo respectivo programa completo na lngua-alvo de cada vez. Ao contrrio, o compilador usa frequentemente compilador especficas funes auxiliares na biblioteca de tempo de execuo que no

so acessveis principalmente para os programadores de aplicativos. Dependendo do fabricante compilador, a biblioteca de tempo, por vezes, conter tambm a biblioteca padro do compilador respectivo ou ser nela contidas. Alm disso, algumas funes que podem ser realizadas apenas (ou so mais eficientes ou precisa) em tempo de execuo so implementadas na biblioteca de tempo de execuo, por exemplo, alguns erros de lgica, limites de matriz verificao, verificao de tipo dinmico manipulao de exceo, e possivelmente depurao funcionalidade. Por este motivo, alguns bugs de programao no so descobertos at que o programa testado em um ambiente de "ao vivo" com dados reais, apesar de verificao em tempo de compilao e sofisticados testes de prlanamento. Neste caso, o utilizador final pode encontrar uma mensagem de erro de execuo. Normalmente, a biblioteca de runtime realiza muitas funes, acessando o sistema operacional. Muitas linguagens de programao tm funes internas que no tm necessariamente de ser realizado no compilador, mas pode ser implementada na biblioteca de tempo de execuo. Assim, a fronteira entre o tempo de execuo biblioteca e biblioteca padro at o fabricante do compilador. Portanto, uma biblioteca sempre compilador especfico e especfico da plataforma. O conceito de uma biblioteca de tempo de execuo no deve ser confundida com uma biblioteca de programa comum, como que criado por um programador da aplicao ou entregues por terceiros ou uma biblioteca dinmica, ou seja, uma biblioteca de programa ligado em tempo de execuo. Por exemplo, a linguagem de programao C requer apenas uma biblioteca de execuo mnima, mas define uma grande biblioteca padro (chamado C biblioteca padro) que cada aplicao tem de entregar.

REFERNCIAS A. Aho, R. Sethi, J.D. Ullman, Compilers: Principles, Techniques, and Tools, Reading, MA. Addison-Wesley, 1986. J.P. Bennett, Introduction to Compiling Techniques. Berkshire, England: McGraw-Hill, 1990. Lourden, Kenneth C, Compiladores Principios e Prticas. Pioneira Thonson Learning, So Paulo, 2004.