diff --git a/C++_Style_Guide.md b/C++_Style_Guide.md new file mode 100644 index 0000000..4aa2422 --- /dev/null +++ b/C++_Style_Guide.md @@ -0,0 +1,41 @@ +# Secure Systems Lab C/C++ Style Guide + +These guidelines provide examples of what to do (or not to do) when writing +C/C++ code for the projects of the Secure Systems Lab in the NYU Tandon School +of Engineering. + +The style guide provided here is intended to improve the readability of code and +make it consistent across the wide spectrum of C/C++ code. The features that your +code must have are readability, security, correctness, robustness and performance. + +In general for C/C++ programming languages we use [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html). + +Since security is an important for Secure Systems Lab, we also should follow some +security rules. + +* For secure C++ coding please have a look follow link: +[The C++ rules.](https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=637) + +* For secure C coding please have a look follow link: +[The C rules.](https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard) + +### See Also + +Five particularly important books related to C++ are: + +1. [Effective C++](https://www.amazon.com/Effective-Specific-Improve-Programs-Designs/dp/0321334876/ref=sr_1_1?ie=UTF8&qid=1492226150&sr=8-1&keywords=effective+c%2B%2B): + 55 Specific Ways to Improve Your Programs and Designs by Scott Meyers. +2. [Effective Modern C++](https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996/ref=sr_1_2?ie=UTF8&qid=1492226150&sr=8-2&keywords=effective+c%2B%2B): + 42 Specific Ways to Improve Your Use of C++11 and C++14 by Scott Meyers. +3. Also interesting and useful are [More Effective C++](https://www.amazon.com/More-Effective-Improve-Programs-Designs/dp/020163371X/ref=sr_1_4?ie=UTF8&qid=1492226150&sr=8-4&keywords=effective+c%2B%2B) and [Effective STL](https://www.amazon.com/Effective-STL-Specific-Standard-Template/dp/0201749629/ref=sr_1_5?ie=UTF8&qid=1492226150&sr=8-5&keywords=effective+c%2B%2B) + by Scott Meyers. +4. [Large-Scale C++ Software Design](https://www.amazon.com/Large-Scale-Software-Design-John-Lakos/dp/0201633620/ref=sr_1_1) by John Lakos. +5. [The C++ Programming Language](https://www.amazon.com/C-Programming-Language-4th/dp/0321563840), 4th Edition by Bjarne Stroustrup. + +Two books related to C are: + +1. [The C Programming Language](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628) by Brian W. Kernighan and Dennis M. Ritchie. +2. [Expert C Programming: Deep C Secrets](https://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298) by Peter van der Linden. + +If you have not read them yet, we highly recommend you to read, you might learn +something.