473,396 Members | 2,068 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Implementing Just-In-Time Compilation

[I am writing this in the hope of finding an answer - where google
fails, surely Usenet can help?]

Hello,

I am in the planning process for developing a VM (Virtual Machine). I
have been researching various aspects for developing a VM in C++ for a
(semi?-)dynamic language, and am looking at the possibility of
implementing JIT for the VM. How would one go about an implementation?
Is the bytecode translated into native instructions similar to ASM, and
then assembled completely into processor-specific instructions? It
seems so, but are there any pointers available in the right direction
in the form of papers, tutorials and the like?

Regards,
Vladimir Lushnikov

Feb 19 '06 #1
5 1981
TB
Vladimir Lushnikov skrev:
[I am writing this in the hope of finding an answer - where google
fails, surely Usenet can help?]

Hello,

I am in the planning process for developing a VM (Virtual Machine). I
have been researching various aspects for developing a VM in C++ for a
(semi?-)dynamic language, and am looking at the possibility of
implementing JIT for the VM. How would one go about an implementation?
Is the bytecode translated into native instructions similar to ASM, and
then assembled completely into processor-specific instructions? It
seems so, but are there any pointers available in the right direction
in the form of papers, tutorials and the like?


Try

comp.compilers

The people there most likely knows.

--
TB @ SWEDEN
Feb 19 '06 #2

Vladimir Lushnikov wrote:
[I am writing this in the hope of finding an answer - where google
fails, surely Usenet can help?]

Hello,

I am in the planning process for developing a VM (Virtual Machine). I
have been researching various aspects for developing a VM in C++ for a
(semi?-)dynamic language, and am looking at the possibility of
implementing JIT for the VM. How would one go about an implementation?
Is the bytecode translated into native instructions similar to ASM, and
then assembled completely into processor-specific instructions? It
seems so, but are there any pointers available in the right direction
in the form of papers, tutorials and the like?


I would have to say that if you need to ask these questions perhapse
you should start with a smaller project. What you are talking about
doing takes years of research and a level of understanding of compiler
design and machine architecture that surpasses most expert programmers.

Feb 19 '06 #3
I was hoping that I was wrong and you didn't have to say that...

My plans for starting such a project is to start with either an
interpreter or a very simple virtual machine that can run some basic
Ruby, and work out the next step then. I am currently reading "Virtual
Machine Design and Implementation in C/C++" by Bill Blunden.

Any other reading starter suggestions?

Feb 19 '06 #4
Vladimir Lushnikov wrote:
I was hoping that I was wrong and you didn't have to say that...
That shouldn't stop you. I remember a time much people were laughing
about a nobody creating his own UNIX-like system for a PC...
My plans for starting such a project is to start with either an
interpreter or a very simple virtual machine that can run some
basic Ruby, and work out the next step then. I am currently reading
"Virtual Machine Design and Implementation in C/C++" by Bill
Blunden.

Any other reading starter suggestions?


You should have a look at java, I'd assume its the VM with the most
experience regarding just-in-time compilation. There are also groups
(or mailing lists) which discuss different aspects of this topic,
I'm fairly sure the java community can help you finding it.

And now - what was your C++ question? ;)

Mathias
Feb 19 '06 #5
Vladimir Lushnikov wrote:
I am in the planning process for developing a VM (Virtual Machine). I
have been researching various aspects for developing a VM in C++ for a
(semi?-)dynamic language, and am looking at the possibility of
implementing JIT for the VM. How would one go about an implementation?


You can join the parrot community. They use C, not C++, but they have a
bunch of work in parsing, VM design and implementation, JIT, and all of
those things.

--
Salu2
Feb 19 '06 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Troels F. Smit | last post by:
Where can I find information on implementing a search function on my site ? -- Mvh. Troels F. Smit
1
by: MKoleoso | last post by:
Problem: C#- Unable to create instance of a class implementing from an interface I have: namespace someNamespace { public __gc class SomeClass1 { }
0
by: Andy | last post by:
Could you tell my about the main stages of implementing XML/EDI? Thank you.
2
by: Paul | last post by:
Have a problem/Question - I have created a C# class that inherits from MarshalByRefObject as well as implements a custom Interface that I have created. The thing that is not working is that when...
6
by: Kerry Sanders | last post by:
I am working on a project for work where I need a specialized type converter to convert the value of a string which is edited in a grid back to the underlying object type from the cell. The value...
0
by: MarkoH | last post by:
I have a function which generates code and compiles assembly for an abstract web service class based on given WSDL. The same as wsdl.exe does, just that I do it from code through usage of CodeDom...
11
by: David Thielen | last post by:
Hi; I am writing a class that implements IDbConnection. The i/f defines a method BeginTransaction() that returns an IDbTransaction. I want to define this as returning a DbTransaction (as...
7
by: Edward Diener | last post by:
Since implement the assign operator for reference types eliminates the ability to assign a reference object to a reference variable of the same type or base class of that type, I assume that...
1
by: Marko Vuksanovic | last post by:
I used the following code for implementing a file upload progress indicator, using UpdateProgress Panel, though I have a problem that FileUpload.Has File always returns false. Any suggestions what...
6
by: csharpula csharp | last post by:
Hello , I would like to build a tree structure in c# using the arraylist or hash table. what is the best way to implement it if I want to add children and to print my tree. Thank you! ***...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.