spell check
This commit is contained in:
parent
2ecf56423d
commit
a569f6b042
|
@ -3,7 +3,7 @@ Below is a list of project ideas for [GSoC 2015](https://www.google-melange.com/
|
|||
|
||||
[Nim](http://nim-lang.org) is a statically typed programming language which compiles primarily to C and has an excellent performance/productivity ratio. Nim's design focuses on efficiency, expressiveness, elegance.
|
||||
|
||||
Areas of the project you may wish to work on include the [Nim compiler](#wiki-nim-compiler) which is itself written in Nim, Nim's [standard library](#wiki-standard-library) and/or the [tools and infrastructure](#wiki-tools--infrastructure) of Nim which includes the Nim build farm (Nimbuild) and the Nim package manager (nimble).
|
||||
Areas of the project you may wish to work on include the [Nim compiler](#wiki-nim-compiler) which is itself written in Nim, Nim's [standard library](#wiki-standard-library) and/or the [tools and infrastructure](#wiki-tools--infrastructure) of Nim which includes the Nim package manager (nimble).
|
||||
|
||||
To get started you will need to clone the Nim repository and then subsequently bootstrap the compiler, instructions for doing this are located [here](https://github.com/Araq/Nim#compiling). You can then move onto the [tutorial](http://nim-lang.org/tut1.html) and read through the [other documentation](http://nim-lang.org/documentation.html) as well.
|
||||
|
||||
|
@ -135,7 +135,7 @@ examples](https://github.com/def-/nim-unsorted) with the JS backend.
|
|||
* Make JS test cases.
|
||||
|
||||
**Bonus points:**
|
||||
* Speed up the JavaScript backend by targetting `asm.js`.
|
||||
* Speed up the JavaScript backend by targeting `asm.js`.
|
||||
* Write a library for communication between client-side Nim (compiled to JavaScript) and server-side Nim (compiled to C).
|
||||
|
||||
**Expected Result:** Nim becomes more usable for client-side website development.
|
||||
|
@ -319,7 +319,7 @@ libraries like OpenMPI or MPICH. Afterwards it will be interesting how to deal
|
|||
with the C preprocessor macros specifying the differences between MPI
|
||||
implementations. You will need to investigate whether a solution such as [in
|
||||
Julia](https://github.com/lcw/MPI.jl/blob/master/deps/make_f_const.f) will be
|
||||
necessary to create a custom wrapper for each MPI implementation. Preferrably
|
||||
necessary to create a custom wrapper for each MPI implementation. Preferably
|
||||
this would be solved directly with Nim's capabilities, and the close relation
|
||||
to C could come in handy here.
|
||||
|
||||
|
@ -402,7 +402,7 @@ ___
|
|||
|
||||
**Description:**
|
||||
|
||||
Lexer generators are useful tools for writing all sorts of parsers. Currently Nim lacks native lexer generators. This project involves the implementation of a lexer generator. It should be modelled after [re2c](http://re2c.org/) or alternatively it can be based on the wide number of existing lexer generators such as Flex.
|
||||
Lexer generators are useful tools for writing all sorts of parsers. Currently Nim lacks native lexer generators. This project involves the implementation of a lexer generator. It should be modeled after [re2c](http://re2c.org/) or alternatively it can be based on the wide number of existing lexer generators such as Flex.
|
||||
|
||||
Here is a sketch of a possible implementation:
|
||||
|
||||
|
@ -424,7 +424,7 @@ ___
|
|||
|
||||
**Description:**
|
||||
|
||||
[Ragel](http://www.complang.org/ragel/) is a "finite-state machine compiler with output support for C, C++, C#, Objective-C, D, Java, OCaml, Go, and Ruby source code." This project involves the implementation of a Nim backend for Ragel. This can be based on the large number of pre-existing backends listed previously. Ragel itself is written in C++, so C++ programming should be familiar to you. Ragel embeds code in the backend language directly and then generates a regular source code file from this. Ideally the new Nim backend would end upstream in Ragel, but alternatively we can maintain it ourselves.
|
||||
[Ragel](http://www.complang.org/ragel/) is a "finite-state machine compiler with output support for C, C++, C#, Objective-C, D, Java, OCaml, Go, and Ruby source code." This project involves the implementation of a Nim backend for Ragel. This can be based on the large number of preexisting backends listed previously. Ragel itself is written in C++, so C++ programming should be familiar to you. Ragel embeds code in the backend language directly and then generates a regular source code file from this. Ideally the new Nim backend would end upstream in Ragel, but alternatively we can maintain it ourselves.
|
||||
|
||||
**Tasks:**
|
||||
* Become familiar with the template format used by Ragel and Ragel internals by studying how it works with other language backends.
|
||||
|
|
Loading…
Reference in New Issue