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

Jeronimus Linuxius

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

Recommended Posts

Jeronimus Linuxius

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.