JR
J.S. Rellermeyer
info
Please Note
<p>This page displays the records of the person named above and is not linked to a unique person identifier. This record may need to be merged to a profile.</p>
2 records found
1
Dynamix on the Frame VM
Declarative dynamic semantics on a VM using scopes as frames
Over the years virtual machines (VMs) have been created to abstract over computer hardware. This simplified code generation and allowed for easy portability between hardware platforms. These VMs are however highly tailored to a particular runtime model. This improves the execution speed, but places restrictions on the types of languages that the VM supports. In this thesis the Frame VM was developed as a VM that supports many different types of languages in a principled way. Achieving this is done by basing the VM on language independent models of memory and control flow. Usage of the scopes-as-frames paradigm and control frames resulted in an instruction set that is relatively small at its core, but does allow for the construction of complex control flow. As an effect, many different programming languages can be compiled to the Frame VM. In addition to this VM, a Domain Specific Language (DSL) for executable semantics of programming languages was created. This language, Dynamix, allows for a modular approach to writing the semantics of a language. Additionally, Dynamix provides a meta-compiler that uses these semantics of a language to compile programs to the Frame VM. To validate the Frame VM, direct compilers for Rust and Prolog have been created in a student project and compilers for Scheme and Tiger were created using Dynamix. Using these semantics of Scheme and Tiger, it was possible to execute programs containing usage of call/cc and a suite of Tiger benchmark programs. Furthermore, the control flow of Tiger was extended with exceptions and generator functions. This extension did not require any changes to the existing semantics, showing the modularity of control achieved when using Dynamix and the Frame VM.
...
Over the years virtual machines (VMs) have been created to abstract over computer hardware. This simplified code generation and allowed for easy portability between hardware platforms. These VMs are however highly tailored to a particular runtime model. This improves the execution speed, but places restrictions on the types of languages that the VM supports. In this thesis the Frame VM was developed as a VM that supports many different types of languages in a principled way. Achieving this is done by basing the VM on language independent models of memory and control flow. Usage of the scopes-as-frames paradigm and control frames resulted in an instruction set that is relatively small at its core, but does allow for the construction of complex control flow. As an effect, many different programming languages can be compiled to the Frame VM. In addition to this VM, a Domain Specific Language (DSL) for executable semantics of programming languages was created. This language, Dynamix, allows for a modular approach to writing the semantics of a language. Additionally, Dynamix provides a meta-compiler that uses these semantics of a language to compile programs to the Frame VM. To validate the Frame VM, direct compilers for Rust and Prolog have been created in a student project and compilers for Scheme and Tiger were created using Dynamix. Using these semantics of Scheme and Tiger, it was possible to execute programs containing usage of call/cc and a suite of Tiger benchmark programs. Furthermore, the control flow of Tiger was extended with exceptions and generator functions. This extension did not require any changes to the existing semantics, showing the modularity of control achieved when using Dynamix and the Frame VM.
It is a common case that resources belong to different people who are distributed across the world. So, for making good use of resources, people have to cooperate with each other. Cooperation is important not only in the physical world but also in cyberspace. Computers holding different resources also need to cooperate with others. The problems that people cooperate with people and computers cooperate with computers can be abstracted into a high level one – peers cooperate with other peers in a network. In such problems, the first step to initiate a cooperation is loc-ating other peers – you can not cooperate with a peer when you are not even aware of its existence. The task to locate other peers is called “peer discovery”, it is not an easy task, especially in distributed fashion. Peers need to acquire information of other peers from somewhere, if there is not a central party, the only place to acquire such information is other peers. Malicious peers may provide toxic information to other peers. Therefore, unconditionally trust other peers is very dangerous. For security concern, peers need to find a way to decide who is trustworthy and who is not. This thesis aims to establish trust among peers basing on the historical behaviors of other peers. We believe that by using the established trust, a Peer-to-Peer system will be more resilient to Sybil Attack where attackers create a lot of fake identities to deceive honest peers. Our trust system will be implemented andtested in the peer discovery system of Tribler, which is a distributed system helping people share files.
...
It is a common case that resources belong to different people who are distributed across the world. So, for making good use of resources, people have to cooperate with each other. Cooperation is important not only in the physical world but also in cyberspace. Computers holding different resources also need to cooperate with others. The problems that people cooperate with people and computers cooperate with computers can be abstracted into a high level one – peers cooperate with other peers in a network. In such problems, the first step to initiate a cooperation is loc-ating other peers – you can not cooperate with a peer when you are not even aware of its existence. The task to locate other peers is called “peer discovery”, it is not an easy task, especially in distributed fashion. Peers need to acquire information of other peers from somewhere, if there is not a central party, the only place to acquire such information is other peers. Malicious peers may provide toxic information to other peers. Therefore, unconditionally trust other peers is very dangerous. For security concern, peers need to find a way to decide who is trustworthy and who is not. This thesis aims to establish trust among peers basing on the historical behaviors of other peers. We believe that by using the established trust, a Peer-to-Peer system will be more resilient to Sybil Attack where attackers create a lot of fake identities to deceive honest peers. Our trust system will be implemented andtested in the peer discovery system of Tribler, which is a distributed system helping people share files.