• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Jeronimus Linuxius

Máquinas virtuais stack vs. register-based, interpretadores VLIW e meditações

1 mensagem neste tópico

Apesar do título comprido, vou ser breve.

Ainda há uns dias, perguntei ao meu prof. de PO (Programação com Objectos), que também dá uma cadeira sobre compiladores, porque é que as máquinas vistuais stack-based são tão usadas se estas são tão notoriamente ineficientes. Ele respondeu-me que isso é porque é mais fácil gerar código, bla, bla, bla, bla, o que não respondeu à questão, já que as linguagens comerciais não têm como objectivo ser fáceis de implementar, que eu saiba... Mas não é isso que me interessa, de momento. Então porque é que eu falei disto? LOL Bem, o que vem a seguir também tem a haver com máquinas virtuais (register-based) e a respectiva eficiência. Foi por isso que comecei com esta introdução.

Bom. Também no tópico das máquinas virtuais, queria saber o que acham do conceito de um interpretador multithreaded que interpretasse bytecode VLIW-like[1]. Isto é, em vez de as linguagens interpretadas só tirarem partido dos multi-processadores se os programas forem programados em múltiplas threads, codificava-se várias operações numa mesma instruction word, e punha-se as ditas a executar em paralelo. Interessante, não?

A principal complicação era a sincronização... Para isso, poderia ser indicado o número máximo de instruções de atraso que a outra thread deve ter para executar a presente instrução em segurança.

Opiniões.

PS: Não vou sequer tentar fazer nada deste género... Era preciso perceber um bom bocado de compiladores para conseguir boa performance. Também era preciso tempo livre, que não é propriamente uma coisa que eu tenha por aí aos pontapés. :-) Mas fica aqui a ideia registada.

JJ

[1] http://en.wikipedia.org/wiki/VLIW

The VLIW approach, on the other hand, executes operation in parallel based on a fixed schedule determined when programs are compiled. Since determining the order of execution of operations (including which operations can execute simultaneously) is handled by the compiler, the processor does not need the scheduling hardware that the three techniques described above require.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora