Difference between revisions of "DevGuide/LearningToProgram"
Kirkscheper (talk | contribs) (Added a link to the contributing page of paparazzi) |
|||
(5 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
== Introduction == | == Introduction == | ||
There sometimes comes a moment that you would like to have more functionality in the Paparazzi GCS, in the airborne code or somewhere else. This non existent functionality does not come out of the blue. It took all people involved blood | There sometimes comes a moment that you would like to have more functionality in the Paparazzi GCS, in the airborne code or somewhere else. This non existent functionality does not come out of the blue. It took all the people involved blood, sweat and tears to get where the paparazzi is now. Also for you, it can be very rewarding to program improvements for the paparazzi. Paparazzi is a large project with years of development so it can be a daunting challenge to edit the source code but your efforts will be rewarded as the community will use your changes, all in an effort to improve Paparazzi software. | ||
Details and tips on contributing the source code can be found here: https://github.com/paparazzi/paparazzi/blob/master/CONTRIBUTING.md | |||
If this is your first programming experience it is maybe better to learn to program some generic desktop applications first. Altering and enhancing the code is even for seasoned programmers not a trivial task. Now if all of this did not make you less motivated, great! Let's get to it. | |||
On this page you will not find in depth info of the languages use. There are much better resource on the internet already than we could ever provide in this Wiki. Therefore there are only link to learning these languages. | |||
== Languages == | == Languages == | ||
Line 15: | Line 15: | ||
=== OCAML === | === OCAML === | ||
The Objective Caml system is the main implementation of the Caml language. It features a powerful module system and a full-fledged object-oriented layer. It comes with a native-code compiler that supports numerous architectures, for high performance; a bytecode compiler, for increased portability; and an interactive loop, for experimentation and rapid development. | The Objective Caml system is the main implementation of the Caml language. It is a functional programming language, and also features a powerful module system and a full-fledged object-oriented layer. It comes with a native-code compiler that supports numerous architectures, for high performance; a bytecode compiler, for increased portability; and an interactive loop, for experimentation and rapid development. | ||
http://www.ocaml-tutorial.org/ | * http://ocaml.org/learn/ | ||
* http://www.ocaml-tutorial.org/ | |||
=== C === | === C === | ||
http://www.cprogramming.com/tutorial.html | http://www.cprogramming.com/tutorial.html | ||
http://www.learn-c.org/ | |||
=== Python === | === Python === | ||
Line 34: | Line 36: | ||
http://www.tutorialspoint.com/makefile/index.htm | http://www.tutorialspoint.com/makefile/index.htm | ||
[[Category:Software]] [[Category:Developer_Documentation]] |
Latest revision as of 02:54, 28 November 2017
Introduction
There sometimes comes a moment that you would like to have more functionality in the Paparazzi GCS, in the airborne code or somewhere else. This non existent functionality does not come out of the blue. It took all the people involved blood, sweat and tears to get where the paparazzi is now. Also for you, it can be very rewarding to program improvements for the paparazzi. Paparazzi is a large project with years of development so it can be a daunting challenge to edit the source code but your efforts will be rewarded as the community will use your changes, all in an effort to improve Paparazzi software.
Details and tips on contributing the source code can be found here: https://github.com/paparazzi/paparazzi/blob/master/CONTRIBUTING.md
If this is your first programming experience it is maybe better to learn to program some generic desktop applications first. Altering and enhancing the code is even for seasoned programmers not a trivial task. Now if all of this did not make you less motivated, great! Let's get to it.
On this page you will not find in depth info of the languages use. There are much better resource on the internet already than we could ever provide in this Wiki. Therefore there are only link to learning these languages.
Languages
The whole of paparazzi is written in various programming languages.
OCAML
The Objective Caml system is the main implementation of the Caml language. It is a functional programming language, and also features a powerful module system and a full-fledged object-oriented layer. It comes with a native-code compiler that supports numerous architectures, for high performance; a bytecode compiler, for increased portability; and an interactive loop, for experimentation and rapid development.
C
http://www.cprogramming.com/tutorial.html http://www.learn-c.org/
Python
Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.
http://wiki.python.org/moin/BeginnersGuide
Makefiles
Makefiles also can be seen as small, sometimes even large programs.