CSC/ECE 517 Fall 2013/oss M803 ana: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
(Created page with "''' CANVAS 2D with RUST and MOZILLA SERVO ''' This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language. == Introduc...")
 
No edit summary
Line 11: Line 11:
=== Rust ===
=== Rust ===


Rust is a curly-brace, block-structured expression language.  
-Rust is a curly-brace, block-structured expression language.  
It visually resembles the C language family, but differs significantly in syntactic and semantic details.  
-It visually resembles the C language family, but differs significantly in syntactic and semantic details.  
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and operational – that preserve large-system integrity, availability and concurrency.
-Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and operational – that preserve large-system integrity, availability and concurrency.
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles.
-It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles.
Example:
- Example:
                   fn main() {
                   fn main() {
   println("hello, world");
   println("hello, world");
Line 22: Line 22:
=== Servo ===  
=== Servo ===  


Servo is an experimental web browser layout engine being developed by Mozilla.
-Servo is an experimental web browser layout engine being developed by Mozilla.
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks.  
-The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks.  
The project has a symbiotic relationship with the Rust programming language, in which it is being developed.  
-The project has a symbiotic relationship with the Rust programming language, in which it is being developed.  
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be "productizable"—the code that we write should be of high enough quality that it could eventually be shipped to users.
-Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be "productizable"—the code that we write should be of high enough quality that it could eventually be shipped to users.
 
==== Design Diagrams ===
 
Task Supervision Diagram
 
[[File:Diagram1.jpg]]
 
Task Communication Diagram
 
[[File:Diagram2.jpg]]

Revision as of 00:28, 31 October 2013

CANVAS 2D with RUST and MOZILLA SERVO

This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.

Introduction

Mozilla are working on a project called Servo which is being implemented in the Rust programming language.

Design

Rust

-Rust is a curly-brace, block-structured expression language. -It visually resembles the C language family, but differs significantly in syntactic and semantic details. -Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and operational – that preserve large-system integrity, availability and concurrency. -It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. - Example:

                 fn main() {
  			 println("hello, world");
                       }

Servo

-Servo is an experimental web browser layout engine being developed by Mozilla. -The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. -The project has a symbiotic relationship with the Rust programming language, in which it is being developed. -Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be "productizable"—the code that we write should be of high enough quality that it could eventually be shipped to users.

= Design Diagrams

Task Supervision Diagram

Task Communication Diagram