From 544a360971051f29779e6d7fa6e75162e5358de9 Mon Sep 17 00:00:00 2001 From: Artyom Baloyan Date: Fri, 14 Apr 2017 23:12:34 -0400 Subject: [PATCH 1/6] - Added C++_Style_Guide.md file. - Wrote C/C++ style guide rules. --- C++_Style_Guide.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 C++_Style_Guide.md diff --git a/C++_Style_Guide.md b/C++_Style_Guide.md new file mode 100644 index 0000000..89c202f --- /dev/null +++ b/C++_Style_Guide.md @@ -0,0 +1,38 @@ +# 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 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. + +As security is an importan for Secure Systems Lab we also should follow some +security standards. + +For secure C++ coding please have a look follow link: +https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=637 + +For secure C coding please have a look follow link: +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++: 55 Specific Ways to Improve Your Programs and Designs + by Scott Meyers. +2. Effective Modern C++: 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++” and “Effective STL” + by Scott Meyers. +4. Large-Scale C++ Software Design by John Lakos. +5. The C++ Programming Language, 4th Edition by Bjarne Stroustrup. + +Two books related to C are: + +1. The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie. +2. Expert C Programming: Deep C Secrets by Peter van der Linden. + +If you have not read them yet, we highly recommend you to read, you might learn +something. From b1758a6c96fc200870cb666a96aeeaea47bfae50 Mon Sep 17 00:00:00 2001 From: Artyom Baloyan Date: Fri, 14 Apr 2017 23:31:33 -0400 Subject: [PATCH 2/6] Update C++_Style_Guide.md - Added links --- C++_Style_Guide.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/C++_Style_Guide.md b/C++_Style_Guide.md index 89c202f..e27d4d4 100644 --- a/C++_Style_Guide.md +++ b/C++_Style_Guide.md @@ -5,34 +5,34 @@ C/C++ code for the projects of the Secure Systems Lab in the NYU Tandon School of Engineering. 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. +In general for C/C++ programming languages we use [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html). -As security is an importan for Secure Systems Lab we also should follow some -security standards. +Since security is an importan for Secure Systems Lab, we also should follow some +security rules. For secure C++ coding please have a look follow link: -https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=637 +[The C++ rules.](https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=637) For secure C coding please have a look follow link: -https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard +[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++: 55 Specific Ways to Improve Your Programs and Designs +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. -2. Effective Modern C++: 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++” and “Effective STL” - by Scott Meyers. -4. Large-Scale C++ Software Design by John Lakos. -5. The C++ Programming Language, 4th Edition by Bjarne Stroustrup. +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 by Brian W. Kernighan and Dennis M. Ritchie. -2. Expert C Programming: Deep C Secrets by Peter van der Linden. +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. From d516cbaa3c1140ded6b2904c0936865a684ca4cb Mon Sep 17 00:00:00 2001 From: Artyom Baloyan Date: Fri, 14 Apr 2017 23:34:04 -0400 Subject: [PATCH 3/6] Update C++_Style_Guide.md - Fixed line --- C++_Style_Guide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/C++_Style_Guide.md b/C++_Style_Guide.md index e27d4d4..6146ff6 100644 --- a/C++_Style_Guide.md +++ b/C++_Style_Guide.md @@ -5,6 +5,7 @@ C/C++ code for the projects of the Secure Systems Lab in the NYU Tandon School of Engineering. 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 importan for Secure Systems Lab, we also should follow some From 895cf6215d1d99ab7f5dabb2fb5ca3671ae34efe Mon Sep 17 00:00:00 2001 From: Artyom Baloyan Date: Fri, 14 Apr 2017 23:41:29 -0400 Subject: [PATCH 4/6] Update C++_Style_Guide.md - Made some correctness of lines --- C++_Style_Guide.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/C++_Style_Guide.md b/C++_Style_Guide.md index 6146ff6..8f993ca 100644 --- a/C++_Style_Guide.md +++ b/C++_Style_Guide.md @@ -3,18 +3,20 @@ 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 features that your code must have are readability, security, correctness, -robustness and performance. + +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 importan for Secure Systems Lab, we also should follow some security rules. -For secure C++ coding please have a look follow link: +* 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: +* 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 From 66e36bfb46e42d6c1725cbe878bfa0f10a428f5b Mon Sep 17 00:00:00 2001 From: Artyom Baloyan Date: Fri, 14 Apr 2017 23:44:27 -0400 Subject: [PATCH 5/6] Update C++_Style_Guide.md - Fix size of See Also --- C++_Style_Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C++_Style_Guide.md b/C++_Style_Guide.md index 8f993ca..c9e6c4c 100644 --- a/C++_Style_Guide.md +++ b/C++_Style_Guide.md @@ -19,7 +19,7 @@ security rules. * 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 +### See Also Five particularly important books related to C++ are: From e179c21aea48ef2f8eadb3a9eeac6b52079ea6a7 Mon Sep 17 00:00:00 2001 From: Artyom Baloyan Date: Fri, 14 Apr 2017 23:53:53 -0400 Subject: [PATCH 6/6] Update C++_Style_Guide.md - Fix typo --- C++_Style_Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C++_Style_Guide.md b/C++_Style_Guide.md index c9e6c4c..4aa2422 100644 --- a/C++_Style_Guide.md +++ b/C++_Style_Guide.md @@ -10,7 +10,7 @@ code must have are readability, security, correctness, robustness and performanc In general for C/C++ programming languages we use [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html). -Since security is an importan for Secure Systems Lab, we also should follow some +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: