<commit_before>## TODO next week
1. examples - add all realized features 
2. push on GitHub
RubimC is a Ruby compiler and framework for microcontrollers like AVR, PIC & STM. It was designed to simplify the process of programming microcontrollers, but can also be used as an clear С-code generator that can be compiled with gcc.

## RubimC
**RubimC** is a Ruby compiler and framework for microcontrollers. Full name RubimCode in Russian transcription heard as "cut down the code". Current version is working but realizes far not all the features of Ruby. All realized features you can find in folder "examples"

## Description:
**RubimC** designed to simplify the process of programming microcontrollers, but can also be used as an clear С-code generator. The framework is a syntax-flavored **Ruby** combines the unique features of the **Ruby**, adding and expanding the functions required for a specific area. At the input  generator takes the program to **Ruby**, and the output provides a pure C code, based on the user program and libraries that are connected to a select model of the microcontroller. All that is required to generate is installed ruby-interpreter. If it`s nessesary, for compile C-code you need installing compiler *gcc* or *avr-gcc* (for AVR microcontrollers)

## Benefits of writing programs in RubymC 
    - increase development speed; 
    - code readability and elegance inherent in the Ruby language; 
    - an object-oriented approach; 
    - the use of an interpreted language does not reduce the performance of the final program becфuse there is no virtual mashine;
     - ability of hardware control IC and delivery of messages; 
     - ability to get a list of the hardware for a particular version of the device, as well as a list of all methods and help them directly from the generator console, on the basis of libraries.

## Why?
First of all for fan...I want to see at Ruby from other point, not only from famous framework Ruby On Rails. Of course, we have great project [mruby] (http://mruby.org/), that compile Ruby code, realized all common functions of Ruby and standart libraries, and supported by **Matz**. But...mruby generate a big-size code, and, as we know, microcontroller have very small memory. For example, for initialize only one array mruby generate binary file with size 1MB! At the other side RubimC generate code with minimal size, in most cases are not different from the similar size, written on clear C. In addition, RubimC generator is clearness. You always can to see on generated C-code and to evaluate its performance and size.

## How it`s work
Code generated in three stage:
1. Preprocessing user programm, that replaced some Ruby keywords, operators and identificators;
2. Shell Ruby-code and generate C-code (use metaprograming of Ruby);
3. Compile C-code (with gcc or avr-gcc).

## Install (Ubuntu)
All you need to use **RubimC** is Ruby interpretator and gcc/avr-gcc compiler. 

The first step is to install some dependencies for Ruby.<commit_msg>Master<commit_after>## RubimC
**RubimC** is a Ruby compiler and framework for microcontrollers. Full name RubimCode in Russian transcription heard as "cut down the code". Current version is working but realizes far not all the features of Ruby. All realized features you can find in folder "examples"

## Description:
**RubimC** designed to simplify the process of programming microcontrollers, but can also be used as an clear С-code generator. The framework is a syntax-flavored **Ruby** combines the unique features of the **Ruby**, adding and expanding the functions required for a specific area. At the input  generator takes the program to **Ruby**, and the output provides a pure C code, based on the user program and libraries that are connected to a select model of the microcontroller. All that is required to generate is installed ruby-interpreter. If it`s nessesary, for compile C-code you need installing compiler *gcc* or *avr-gcc* (for AVR microcontrollers)

## Benefits of writing programs in RubymC 
    - increase development speed; 
    - code readability and elegance inherent in the Ruby language; 
    - an object-oriented approach; 
    - the use of an interpreted language does not reduce the performance of the final program becфuse there is no virtual mashine;
     - ability of hardware control IC and delivery of messages; 
     - ability to get a list of the hardware for a particular version of the device, as well as a list of all methods and help them directly from the generator console, on the basis of libraries.

## Why?
First of all for fan...I want to see at Ruby from other point, not only from famous framework Ruby On Rails. Of course, we have great project [mruby] (http://mruby.org/), that compile Ruby code, realized all common functions of Ruby and standart libraries, and supported by **Matz**. But...mruby generate a big-size code, and, as we know, microcontroller have very small memory. For example, for initialize only one array mruby generate binary file with size 1MB! At the other side RubimC generate code with minimal size, in most cases are not different from the similar size, written on clear C. In addition, RubimC generator is clearness. You always can to see on generated C-code and to evaluate its performance and size.

## How it`s work
Code generated in three stage:
1. Preprocessing user programm, that replaced some Ruby keywords, operators and identificators;
2. Shell Ruby-code and generate C-code (use metaprograming of Ruby);
3. Compile C-code (with gcc or avr-gcc).

## Install (Ubuntu)
All you need to use **RubimC** is Ruby interpretator and gcc/avr-gcc compiler. 

The first step is to install some dependencies for Ruby.
{'fraction_non_alphanumeric': 0.05375590964804763, 'fraction_numerical': 0.001751006828926633, 'mean_word_length': 4.230769230769231, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6140578', 'n_tokens_mistral': 1450, 'n_tokens_neox': 1362, 'n_words': 881}