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

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
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 ====
==== Design Diagrams ====
Line 32: Line 32:


[[File:Diagram1.jpg]]
[[File:Diagram1.jpg]]
Task Communication Diagram
Task Communication Diagram


[[File:Diagram2.jpg]]
[[File:Diagram2.jpg]]

Revision as of 00:30, 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