Questions tagged [virtual-machine]

A virtual machine is an emulation layer between a program and the OS that presents to the application a specialized environment to run in, than the raw environment that the OS provides.

Filter by
Sorted by
Tagged with
53
votes
4answers
17k views

Why do VMs need to be “stack machines” or “register machines” etc.?

(This is an extremely newbie-ish question). I've been studying a little about Virtual Machines. Turns out a lot of them are designed very similarly to physical or theoretical computers. I read that ...
52
votes
6answers
10k views

Why aren't there other programming languages that compile to Python bytecode?

In Java, there are multiple languages that compile to Java bytecode and can run on the JVM -- Clojure, Groovy, and Scala being the main ones I can remember off the top of my head. However, Python ...
51
votes
25answers
32k views

Thoughts on Development using Virtual Machines [closed]

I'll be working as a development lead for a startup and I've suggested that we use VMs for development. I'm not talking about each developer having a desktop with VMs for testing/development, I mean ...
51
votes
3answers
9k views

What is a type system?

Background I am designing a language, as a side project. I have a working assembler, static analyser, and virtual machine for it. Since I can already compile and run non-trivial programs using the ...
41
votes
11answers
3k views

Are there any reasons not to accept a software deliverable as a virtual machine?

This is a question about logistics, not a technical question. My company has outsourced some embedded software work. Specifically, we have payed a contractor to develop an embedded system for us ...
36
votes
8answers
21k views

Is overriding Object.finalize() really bad?

The main two arguments against overriding Object.finalize() is that: You don't get to decide when it's called. It may not get called at all. If I understand this correctly, I don't think those are ...
20
votes
7answers
13k views

Java IDE written in pure Java? [closed]

Is there a Java IDE written in Java? I just got my year 9 DET laptop today at school, and there are all sorts of restrictions set in place. Somewhat annoyingly, you cannot run any executable other ...
20
votes
3answers
3k views

Which are the alternatives to using a stack to represent function call semantics?

We all know and love that function calls are usually implemented using the stack; there are frames, return addresses, parameters, the whole lot. However, the stack is an implementation detail: ...
18
votes
11answers
12k views

Reasons to Use a VM For Development [duplicate]

Background: I work at a start-up company, where one team uses Virtual Machines to connect to a remote server to do their development, and another team (the team I'm on) uses local IIS/SQL Server 2005/...
17
votes
3answers
18k views

Why would more CPU cores on virtual machine slow compile times?

[edit#2] If anyone from VMWare can hit me up with a copy of VMWare Fusion, I'd be more than happy to do the same as a VirtualBox vs VMWare comparison. Somehow I suspect the VMWare hypervisor will be ...
15
votes
4answers
11k views

Why is .NET VM based? [duplicate]

Java has been designed to run on a virtual machine to allow portability for programs. However .NET has been designed from the start specifically for Windows. Than what is the reason for .NET ...
12
votes
1answer
557 views

What's the relationship between meta-circular interpreters, virtual machines and increased performance?

I've read about meta-circular interpreters on the web (including SICP) and I've looked into the code of some implementations (such as PyPy and Narcissus). I've read quite a bit about two languages ...
9
votes
4answers
1k views

Why not free memory as soon as its reference counter hits zero [duplicate]

A lot of languages like Java and C# have garbage collectors that free memory when that memory no longer has any reference. Yet they don't immediately free it after the reference counter hits zero but ...
9
votes
1answer
309 views

Computer Architectures NOT based on arrays [closed]

Wadler's original paper on Monads for Functional Programming ( Haskell ) ,he says Another question with a long history is whether it is desirable to base programs on array update. Since so much ...
8
votes
4answers
2k views

How do I explain to my boss what a 'Virtual Machine' means? [closed]

Most probably my boss didn't write a single word on a keyboard in his entire life. He saw computers and he has a cell phone. He is a smart man. How can I explain to him what a 'virtual machine' is? ...
8
votes
2answers
2k views

Which are the fundamental stack manipulation operations?

I'm creating a stack oriented virtual machine, and so I started learning Forth for a general understanding about how it would work. Then I shortlisted the essential stack manipulation operations I ...
8
votes
2answers
4k views

How did the term “hypervisor” come into use?

I've read about the "hypervisor" in hardware virtualization. VMs are not my area, so I can't quite see where the term came from. THe wikipedia article talks about how "the hardware's supervisor ...
8
votes
2answers
2k views

Modern.IE VM license

Microsoft provides some VMs for testing purposes (advertised on Stack Overflow) and I'm trying to understand the license terms. The one I don't really understand is 1.b. You may use the software ...
8
votes
1answer
217 views

To show the difference between system VMs and JVMs

I am trying to draw diagrams that show the difference between system virtual machines and Java virtual machines. The first two images looks correct to me. But I don't know how to draw the third. ...
7
votes
1answer
392 views

Why is it difficult to create a truly portable garbage collector for C?

When reading the Python docs for writing C extensions, one can find the following text in the part about CPython's garbage collection strategy (emphasis mine): ... The disadvantage [of automatic ...
7
votes
3answers
4k views

What is the job of a language virtual machine, and creating one [closed]

Recently I have become incredibly interested in language development. The past few weeks I have written many language front ends (lexer, parser) including a calculator language/expression parser and ...
6
votes
3answers
1k views

What would the register-machine bytecode for this code look like?

I hope this kind of question isn't off-topic on this site. I'm finally getting the hang of what a stack based machine is, and how to compile code for it. For example, the following code: 2 * 5 + 1 ...
6
votes
1answer
591 views

Difference between language virtual machine and emulating vm?

I'm having a hard time understanding the difference between an emulation virtual machine and a language vm. I started with the research and implementation of an emulation virtual machine. Primarily ...
6
votes
2answers
703 views

Isolated environment for software stacks

I was sure that I would find this question, but I couldn't. How to create an isolated development environment? It other words, a sandbox, where I can install different combinations of web servers, ...
6
votes
1answer
2k views

Setting up a development environment in the cloud? [closed]

I'm interested in transitioning my development environment onto the cloud. I currently use VirtualBox with Vagrant to manage separate virtual machines for each individual project. What would be the ...
5
votes
6answers
2k views

Virtual machine for a high level programming language vs an operating system

It struck me recently that a virtual machine for a high level programming language is very much like an OS. It manages resources, e.g. stack, heap, etc. similar to how an operating system manages ...
5
votes
2answers
541 views

Why are most language virtual machines designed with a load/store architecture? Is there a speed advantage vs. a register-memory architecture?

I am developing a virtual machine for personal use (open source of course!) In researching and looking at the source code of other virtual machines, especially those of scripting languages; I noted ...
5
votes
4answers
5k views

How can I implement an 'if' statement in an interpreter?

If I were writing a compiler (say for a stack-based VM), the code for an if statement: if (<some_expression>) { <some_instructions> } Would be translated to the following psuedo-...
5
votes
2answers
912 views

If statements in “generic” assembly?

I'm reading a relatively 'friendly' and simple book about compilers named "Let's Build A Compiler" (originally a series of articles). The compiler written in the book generates instructions in some ...
5
votes
1answer
2k views

How do VMs implement function calling?

I'm reading a compiler textbook that compiles to some form of assembly. Since I don't know this assembly language I decided to invent my own simple "assembly language" and implement a basic "virtual ...
4
votes
4answers
1k views

Is a call stack required for robust computer architecture?

I am not too familiar with the computer architecture terminology yet so please bear with me. I seem to understand that von Neumann architectures are more robust ("universal Turing machines") as ...
4
votes
2answers
4k views

Difference between PyPy and JVM

From my understanding the default Python interpreter(CPython) compiles source code into bytecode and then interprets the bytecode into machine code. PyPy on the other hand makes use of JIT to optimize ...
4
votes
3answers
1k views

Interpreter or virtual machine that does not execute bytecode

The developers of the Dart language tell that there is a virtual machine that executes statements written in Dart language. What is the difference between an interpreter and a virtual machine that ...
4
votes
2answers
1k views

What do you think of an interpreter written in Java? [closed]

I am currently working on the implementation of a new programming language, for fun. I realize that most languages never become popular, but I still want the language to have a high-quality ...
4
votes
2answers
345 views

Criteria for a language (Terra as a tricky example) to be usable for operating system development, and how to meet missing criteria

For example, a language that I was looking at recently- Terra. You can address the question in the context of any language, I'm just most comfortable with Lua so I'm starting from there. The Terra ...
4
votes
1answer
547 views

Is there any license restriction to avoid binary translation of CIL to custom bytecode?

Prior to actual question, let me summarize what I'm trying to do. I plan to implement a small, JIT-enabled, register-based VM runtime. Instead of making a proper compiler (which is hard IMO) for a ...
4
votes
2answers
814 views

Is ART an installation process? Or an OS? Or a virtual Machine?

When attempting to understand Android Runtime, I came across the wikipedia page. The graphic shown there adds to my confusion. If .dex is getting converted entirely to ELF, why is ART needed anymore? ...
4
votes
2answers
625 views

Does a vm implemented in garbage collected language need a garbage collector?

This is more of a theoretical question. If jvm is implemented in go which itself is a garbage collected language, then does that jvm need a separate garbage collector to be implemented for its own ...
3
votes
3answers
2k views

How exactly is bytecode “parsed”?

How is Bytecode "parsed"? It is my understand that Bytecode is a binary, intermediate representation of the syntax of a given programming language. Certain programming languages convert their source ...
3
votes
4answers
2k views

Why do VMs not execute the assembly directly?

Many VMs execute a language of binary form, knows as 'bytecode', which is assembled down from a human readable 'assembly' language. For example the assembly instructions push 1 push 2 add are ...
3
votes
4answers
1k views

GCC or Clang to output bytecode for a VM?

Long story short, I wanted to use C as a scripting language and in a portable manner so I created a register-based, JITless VM to accomplish this. I've formalized the VM's ISA, script file format, ...
3
votes
2answers
907 views

What is the point of the Common Language Runtime (CLR)?

My understanding is that part of the point of the JVM was that the code could "run anywhere", but CLR code was designed to run only on Windows: so why have a virtual machine? I know that the CLR ...
3
votes
2answers
326 views

What is the advantage of a programmers VM apart from portability [duplicate]

I can understand the benefits of Java running on a JVM. Portability. Nice simple reason. But I have always been puzzled as to why Microsoft brought out their own version of a JVM - .NET. C# is ...
3
votes
2answers
1k views

Speed difference between VM-based and compiled code [closed]

Not so long ago I was told by a senior academic that, these days, VM-based code could run nearly as fast as compiled code, but my own experience is that compiled code runs several orders of time ...
3
votes
2answers
899 views

How to devise instruction set of a stack based machine?

Stack based virtual machines like CLR and JVM has different set of instructions. Is there any theory behind devising the instruction set while creating a virtual machine? e.g. there are JVM ...
3
votes
1answer
483 views

Representing floating-point numbers in bytecode

How do interpreted languages typically go about representing floating-point numbers in their bytecode? For example, suppose I've got a Java program with the line double a = 3.0; What does 3.0 look ...
3
votes
2answers
274 views

Do VMs use one stack for everything? [duplicate]

Most VMs have a "call stack" to keep track of where to return from each function that was called. This is often simply regarded as "the stack". However often a stack is needed for operations that ...
3
votes
5answers
387 views

What happened to VM based deployments?

Watched some MountainWest RubyConf 2014 talks and noticed an interesting theme. Many dynamic programming environments back in the old days used to be self-contained VM images, e.g. SmallTalk, GemStone/...
3
votes
2answers
456 views

Developing a virtual machine / sandbox

I'm interested in learning how a virtual machine/sandbox actually works. I have developed an 8051 emulator and also wrote a dissassembler for x86, so this part of a virtual machine is not really the ...
3
votes
2answers
685 views

What is the best way to maintain software tool chains?

Short Question What is the best way to create, maintain, and distribute software development tool chains? Background I am trying to develop a workflow / process to create an isolated environment in ...