Compiler and Integrated Development Environment for Embedded Software Design

Total Page:16

File Type:pdf, Size:1020Kb

Compiler and Integrated Development Environment for Embedded Software Design Fundamentals of Compiler and Integrated Development Environment for Embedded Software Design Max Mauro Dias Santos [email protected] Ponta Grossa, Paraná - Brazil January 23, 2021 What and where are the compiler and IDE? January 23, 2021 2 January 23, 2021 3 Outline 1. Introduction 2. Central Processing Unit 3. Memory 4. Embedded Programmig Languages 5. Compiler 6. GCC – GNU Compiler Collection 7. Integrated Development Environment 8. Embedded Systems Software Development Tools 9. Integrated Development Environment Tools 10.IDE - CodeBlocks Obs.: This material has been done based on several materials available and I reference the original owners throughout and in the end of this presentation. January 23, 2021 4 What will you learn in the end of this Lesson? 1. Understand about the features hardware: Central Processing Unit and Memory 2. The workflow for embedded programming languages 3. How works the compiler which is able to translate from source to machine code 4. Undertand about the compiler GCC – GNU Compiler Collection 5. Undestand, identify and how to use the IDE 6. Know the most used IDE tools 7. Build C programs using CodeBlock. It’s not yet for embedded over a hardware 8. We have to know identify a compiler for IBM-PC and Microcontroller. Is it a tough task? 9. Understand to build a simple application and test it’s quality. January 23, 2021 5 Introduction We have as a goal, learn how to setup and use tools for develop an embedded software. We have to understand what are the difference between source and machine codes. Moreover, what is the CISC and RISC architecture and Anyway, let’s try to introduce the fundamentals memory. of Compiler, na example of GCC and well know IDE or Integrated Development Environment. Is there a guideline to develop embedded software for embedded systems? We will show some of them. I hope to show you some compilers and IDEs available which will help you to work on properly toward become a beginner developer of embedded system. I have a dream. My goal is teach you a little bit more about software tools to develop embedded software based on ARM architecture. ARM has a bunch of resources and support RTOS. Finally, in the end of this lesson you will be able to select and use the most suitable toolchain for build embedded systems – hardware & software January 23, 2021 6 Computer Architecture The computer architecture is the programmer's view of a computer. It is defined by the instruction set (language) and operand locations (registers and memory). There are many different architectures, such as ARM, x86, MIPS, SPARC, and PowerPC. Question-1: What is the difference between architecture and organization? Question-2: Have you ever heard about RISC-V? January 23, 2021 7 Central Processing Unit Motivation On the right is a diagram representing the storage scheme for a generic computer. The main memory is divided into locations numbered from (row) 1: (column) 1 to (row) 6: (column) 4. The execution unit is responsible for carrying out all computations. However, the execution unit can only operate on data that has been loaded into one of the six registers (A, B, C, D, E, or F). Let's say we want to find the product of two numbers - one stored in location 2:3 and another stored in location 5:2 - and then store the product back in the location 2:3. The CISC Approach The RISC Approach MULT 2:3, 5:2 LOAD A, 2:3 LOAD B, 5:2 PROD A, B STORE 2:3, A https://cs.stanford.edu/people/eroberts/courses/soco/projects/risc/risccisc/ January 23, 2021 8 Central Processing Unit CISC x RISC Almost all modern CPU has different sorts of architecture. It utilizes the capacity to work from “Instruction Set Architecture”. There are two types of this architectural design. First one is RISC (Reduced instruction set computing). The second one is CISC (Complex instruction set computing). However, both differ in various ways. RISC is a design of Central Processing Unit that has the basis of basic instruction set. It gives good performance along with a microprocessor system. In short, it has the ability to execute the commands with the help of some microprocessor cycles per command. https://microcontrollerslab.com/difference-between-risc-and-cisc/ January 23, 2021 9 Central Processing Unit RISC Architecture There are a lot of characteristics related to the RISC architecture, some of them are as follows: 1. Simple set of instructions which are easy to decode and implement. 2. The size of one instruction comes under the size of a single word. 3. Only one clock cycle is required to execute a single instruction, so it is a fast process. 4. The quantity of general purpose register is greater. 5. The addressing modes are quite simple. 6. The variable data types are very less. 7. Its main idea is to achieve pipelining. https://microcontrollerslab.com/difference-between-risc-and-cisc/ January 23, 2021 10 Central Processing Unit CISC Architecture There are a lot of characteristics related to the CISC architecture, some of them are as follows: 1. The instruction set is complex. Hence, it’s decoding. 2. Instructions are normally large due to their complexity. Instructions are normally bigger than one word size. 3. Usually, the compound instructions take greater time than a single clock cycle in their execution. 4. The number of general purpose registers are less. Because this, it performs most operations in the memory itself. 5. The addressing modes are normally complex. 6. The data types are numerous. https://microcontrollerslab.com/difference-between-risc-and-cisc/ January 23, 2021 11 Central Processing Unit RISC x CISC This equation is normally used to check the performance of any computer: This formula clearly tells that the performance of a RISC based architecture is way better than the one operating using CISC architecture. CISC and RISC are two entirely different types of computer architectures. Some of their differences are as follows: https://microcontrollerslab.com/difference-between-risc-and-cisc/ January 23, 2021 12 Central Processing Unit RISC x CISC CISC RISC ADD Ma,Mb LOAD Ra, Ma LOAD Rb, Mb ADD Ra, Rb STORE Ma, Ra Ra, Rb : Register, Ma, Mb : Memory Block http://www.sharetechnote.com/html/EmbeddedSystem_CISC_RISC.html January 23, 2021 13 Central Processing Unit RISC x CISC https://medium.com/swlh/what-does-risc-and-cisc-mean-in-2020-7b4d42c9a9de January 23, 2021 14 Central Processing Unit RISC x CISC https://www.geekfail.net/2013/06/arquitetura-cisc-vs-risc.html January 23, 2021 15 Central Processing Unit The importance of Mnemonic, Operation, Byte and Time https://www.youtube.com/watch?app=desktop&v=xOCjCA3kNgc January 23, 2021 16 Central Processing Unit High Tech Technology Artificial Neural Network to run over Neural Processing Unit Artificial Neural Network Neural Processing Unit https://www.researchgate.net/figure/The-hardware-architecture-of-the-neural-processing-engine-The-left-part-is-the-neural_fig4_336514386 January 23, 2021 17 Central Processing Unit High Tech Technology https://blogs.gartner.com/paul-debeasi/2019/02/14/training-versus-inference/ January 23, 2021 18 Central Processing Unit FSD Chip - Tesla Full Self-Driving Chip (FSD Chip, previously Autopilot Hardware 3.0) is an autonomous driving chip designed by Tesla and introduced in early 2019 for their own cars. Tesla claims the chip is aimed at autonomous levels 4 and 5. Fabricated on Samsung's 14 nm process technology, the FSD Chip incorporates 3 quad-core Cortex-A72 clusters for a total of 12 CPUs operating at 2.2 GHz, a Mali G71 MP12 GPU operating 1 GHz, 2 neural processing units operating at 2 GHz, and various other hardware accelerators. The FSD supports up to 128-bit LPDDR4-4266 memory. https://en.wikichip.org/wiki/tesla_(car_company)/fsd_chip January 23, 2021 19 Central Processing Unit FSD Chip - Tesla The 14 nm process refers to the MOSFET technology node that is the successor to the 22 nm (or 20 nm) node. 14 nm process Timeline MOSFET scaling (process nodes) . 10 µm – 1971 . 6 µm – 1974 . 3 µm – 1977 . 1.5 µm – 1981 Semiconductor . 1 µm – 1984 NVIDIA is secretly device . 800 nm – 1987 . 600 nm – 1990 working on a 5 nm chip fabrication . 350 nm – 1993 . 250 nm – 1996 . 180 nm – 1999 . 130 nm – 2001 . 90 nm – 2003 . 65 nm – 2005 . 45 nm – 2007 . 32 nm – 2009 . 22 nm – 2012 . 14 nm – 2014 . 10 nm – 2016 Kirin 9010 3 nm will be . 7 nm – 2018 Huawei's next flagship . 5 nm – 2020 . Future processor . 3 nm – ~2022 . 2 nm – >2023 https://en.wikichip.org/wiki/tesla_(car_company)/fsd_chip January 23, 2021 20 Central Processing Unit FSD Chip - Tesla Jim Keller, Tesla’s former head of Autopilot hardware and the designer of Tesla’s Self-Driving Computer chip, says that he is confident about solving autonomous driving after working at Tesla. Bio - James B. Keller (born 1958/1959) is a microprocessor engineer best known for his work at AMD and Apple. He was the lead architect of the AMD K8 microarchitecture (including the original Athlon 64) and was involved in designing the Athlon (K7) and Apple A4/A5 processors. He was also the coauthor of the specifications for the x86-64 instruction set and HyperTransport interconnect. From 2012 to 2015, he returned to AMD to work on the AMD K12 and Zen microarchitectures. https://electrek.co/2020/02/07/tesla-self-driving-computer-designer-jim-keller-confident-solving-autonomous-driving/ January 23, 2021 21 Central Processing Unit FSD Chip - Tesla Component GPU NPU Amount 1 2 Model S, Model 3, and Model X 600 GFLOPS 36.86 TOPS Peak Performance (FP32, FP64) (Int8) Total Peak Performance 600 GFLOPS 73.73 TOPS https://en.wikichip.org/wiki/tesla_(car_company)/fsd_chip January 23, 2021 22 Central Processing Unit FSD Chip - Tesla Where is the LIDAR? https://www.quora.com/Why-did-Tesla-develop-their-own-chip-for-self-driving January 23, 2021 23 Central Processing Unit RISC – Reduced Instruction Set Computing .
Recommended publications
  • Clojure.Core 12
    clojure #clojure 1 1: Clojure 2 2 2 Examples 3 3 1 : Leiningen 3 3 OS X 3 Homebrew 3 MacPorts 3 Windows 3 2 : 3 3 : 4 ", !" REPL 4 4 ", !" 4 ( ) 5 2: clj-time 6 6 Examples 6 6 - 6 6 6 joda - 7 - - 7 3: Clojure destructuring 8 Examples 8 8 8 9 9 9 fn params 9 10 10 : 10 Key 10 . 11 4: clojure.core 12 12 Examples 12 12 Assoc - / 12 Clojure 12 Dissoc - 13 5: clojure.spec 14 14 14 Examples 14 14 fdef : 14 14 clojure.spec / & clojure.spec / 15 15 16 16 18 6: clojure.test 19 Examples 19 ~. 19 19 deftest 19 20 . 20 Leiningen 20 7: core.async 22 Examples 22 : , , , . 22 chan 22 >!! >!! >! 22 <!! <!! 23 23 put! 24 take! 24 24 8: core.match 26 26 Examples 26 26 26 26 26 9: Java interop 27 27 27 Examples 27 Java 27 Java 27 Java 27 27 Clojure 28 10: 29 29 29 Examples 29 29 11: 30 Examples 30 30 30 31 IntelliJ IDEA + 31 Spacemacs + CIDER 31 32 12: 33 Examples 33 33 . 33 33 34 34 34 34 34 35 35 13: 36 36 36 Examples 36 36 36 14: 38 38 38 Examples 38 38 15: 39 39 Examples 39 (- >>) 39 (->) 39 (as->) 39 16: 40 40 Examples 40 40 40 40 17: 41 Examples 41 http-kit 41 Luminus 41 42 42 42 18: CIDER 43 43 Examples 43 43 43 19: 45 Examples 45 45 45 20: 46 46 Examples 46 46 46 48 52 55 58 21: 63 Examples 63 & 63 22: 64 64 64 Examples 64 64 64 / 65 23: 66 Examples 66 66 : 66 67 You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: clojure It is an unofficial and free clojure ebook created for educational purposes.
    [Show full text]
  • Chapter 1 Introduction to Computers, Programs, and Java
    Chapter 1 Introduction to Computers, Programs, and Java 1.1 Introduction • The central theme of this book is to learn how to solve problems by writing a program . • This book teaches you how to create programs by using the Java programming languages . • Java is the Internet program language • Why Java? The answer is that Java enables user to deploy applications on the Internet for servers , desktop computers , and small hand-held devices . 1.2 What is a Computer? • A computer is an electronic device that stores and processes data. • A computer includes both hardware and software. o Hardware is the physical aspect of the computer that can be seen. o Software is the invisible instructions that control the hardware and make it work. • Computer programming consists of writing instructions for computers to perform. • A computer consists of the following hardware components o CPU (Central Processing Unit) o Memory (Main memory) o Storage Devices (hard disk, floppy disk, CDs) o Input/Output devices (monitor, printer, keyboard, mouse) o Communication devices (Modem, NIC (Network Interface Card)). Bus Storage Communication Input Output Memory CPU Devices Devices Devices Devices e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor, and Tape and NIC Mouse Printer FIGURE 1.1 A computer consists of a CPU, memory, Hard disk, floppy disk, monitor, printer, and communication devices. CMPS161 Class Notes (Chap 01) Page 1 / 15 Kuo-pao Yang 1.2.1 Central Processing Unit (CPU) • The central processing unit (CPU) is the brain of a computer. • It retrieves instructions from memory and executes them.
    [Show full text]
  • “A Magnetzed Needle and a Steady Hand”
    “A Magne)zed Needle and a Steady Hand” Alternaves in the modern world of Integrated Development Environments Jennifer Wood CSCI 5828 Spring 2012 Real Programmers hp://xkcd.com/378/ For the rest of us • Modern Integrated Development Environments (IDE) – A one-stop shop with mul)ple features that can be easily accessed by the developer (without switching modes or ac)vang other u)li)es) to ease the task of creang soYware – A mul)tude of IDEs exist for each programming language (Java, C++, Python, etc.) and each plaorm (desktops, cell phones, web-based, etc.) – Some IDEs can handle mul)ple programming languages, but most are based in just one – There are many good free IDEs out there, but you can also pay for func)onality from $ to $$$$ – IDEs are like opinions, everyone has one and everyone thinks everyone else's s)nks Why are IDEs a good thing? • They aack many of the sources of accidental difficul)es in soYware development by having: – Real-)me protec)on from fault generang typos and bad syntax – High levels of abstrac)on to keep developers from being forced to redevelop basic (and not so basic) classes and structures for every project – IDE increases the power of many development tools by merging them into one that provides “integrated libraries, unified file formats, and pipes and filters. As a result, conceptual structures that in principle could always call, feed, and use one another can indeed easily do so in prac)ce.” (Brooks, 1987). • A core focus of IDE developers is con)nuous improvement in transparency to minimize searching for func)ons
    [Show full text]
  • Programming Languages and Methodologies
    Personnel Information: Şekip Kaan EKİN Game Developer at Alictus Mobile: +90 (532) 624 44 55 E-mail: [email protected] Website: www.kaanekin.com GitHub: https://github.com/sekin72 LinkedIn: www.linkedin.com/in/%C5%9Fekip-kaan-ekin-326646134/ Education: 2014 – 2019 B.Sc. Computer Engineering Bilkent University, Ankara, Turkey (Language of Education: English) 2011 – 2014 Macide – Ramiz Taşkınlar Science High School, Akhisar/Manisa, Turkey 2010 – 2011 Manisa Science High School, Manisa, Turkey 2002 – 2010 Misak-ı Milli Ali Şefik Primary School, Akhisar/Manisa, Turkey Languages: Turkish: Native Speaker English: Proficient Programming Languages and Methodologies: I am proficient and experienced in C#, Java, NoSQL and SQL, wrote most of my projects using these languages. I am also experienced with Scrum development methodology. I have some experience in C++, Python and HTML, rest of my projects are written with them. I have less experience in MATLAB, System Verilog, MIPS Assembly and MARS. Courses Taken: Algorithms and Programming I-II CS 101-102 Fundamental Structures of Computer Science I-II CS 201-202 Algorithms I CS 473 Object-Oriented Software Engineering CS319 Introduction to Machine Learning CS 464 Artificial Intelligence CS 461 Database Systems CS 353 Game Design and Research COMD 354 Software Engineering Project Management CS 413 Software Product Line Engineering CS 415 Application Lifecycle Management CS 453 Software Verification and Validation CS 458 Animation and Film/Television Graphics I-II GRA 215-216 Automata Theory and Formal
    [Show full text]
  • Fira Code: Monospaced Font with Programming Ligatures
    Personal Open source Business Explore Pricing Blog Support This repository Sign in Sign up tonsky / FiraCode Watch 282 Star 9,014 Fork 255 Code Issues 74 Pull requests 1 Projects 0 Wiki Pulse Graphs Monospaced font with programming ligatures 145 commits 1 branch 15 releases 32 contributors OFL-1.1 master New pull request Find file Clone or download lf- committed with tonsky Add mintty to the ligatures-unsupported list (#284) Latest commit d7dbc2d 16 days ago distr Version 1.203 (added `__`, closes #120) a month ago showcases Version 1.203 (added `__`, closes #120) a month ago .gitignore - Removed `!!!` `???` `;;;` `&&&` `|||` `=~` (closes #167) `~~~` `%%%` 3 months ago FiraCode.glyphs Version 1.203 (added `__`, closes #120) a month ago LICENSE version 0.6 a year ago README.md Add mintty to the ligatures-unsupported list (#284) 16 days ago gen_calt.clj Removed `/**` `**/` and disabled ligatures for `/*/` `*/*` sequences … 2 months ago release.sh removed Retina weight from webfonts 3 months ago README.md Fira Code: monospaced font with programming ligatures Problem Programmers use a lot of symbols, often encoded with several characters. For the human brain, sequences like -> , <= or := are single logical tokens, even if they take two or three characters on the screen. Your eye spends a non-zero amount of energy to scan, parse and join multiple characters into a single logical one. Ideally, all programming languages should be designed with full-fledged Unicode symbols for operators, but that’s not the case yet. Solution Download v1.203 · How to install · News & updates Fira Code is an extension of the Fira Mono font containing a set of ligatures for common programming multi-character combinations.
    [Show full text]
  • The Java Compiler • the Java Interpreter • the Java Debugger On
    Tools : • The Java Compiler javac [ options ] filename.java . -depend: Causes recompilation of class files on which the source files given as command line arguments recursively depend. -O: Optimizes code, slows down compilation, dis- ables -depend. • The Java Interpreter java [ options ] classname hargsi • The Java Debugger jdb [ options ] Type help or ? to get started. On windows we have Jcreator and netbeans on our BSD systems. (We also have netbeans on windows available, but it is not nearly as quick as jcreator.) 1 The simplest program: public class Hello { public static void main(String[] args) { System.out.println("Hello."); } } Hello.java Executing this program would print to the console the sentence “Hello.”. A bit more complex: public class Second { public static void main(String[] input) { for (int i = input.length - 1; i >= 0; i--) System.out.print(input[i] + " "); System.out.print("\n"); } } Second.java Executing this program would print to the console the arguments in reverse order, each separated by one blank space. Primitive data types : • byte : 8 bit integer, [-128 , 127] • char : 16 bit unsigned integer, [0 , 65536]. This character set offers 65536 distincts Unicode char- acters. • short : 16 bit signed integer, [-32768 , 32767] • int : 32-bit integer, [-2147483648 , 2147483647] • long : 64 bit signed integer, [-9223372036854775807 , 9223372036854775806] • float : 32-bit float, 1.4023984e–45 to 3.40282347e+38 • double : 64-bit float, 4.94065645841246544e–324 to 1.79769313486231570e+308 • boolean : such a variable can take on
    [Show full text]
  • EHR Usability Test Report of Pediatricxpress, Version 20
    Page | 1 EHR Usability Test Report of PediatricXpress, Version 20 Report based on ISO/IEC 25062:2006 Common Industry Format for Usability Test Reports Date of Usability Test: January 30, 2019 – February 8, 2019 Date of Report: February 11, 2019 (updated 10/28/20) Report Prepared by: PhysicianXpress, Inc. Vene Quezada, Product Specialist [email protected] 877-366-7331 409 2nd Avenue, Suite 201 Collegeville, PA 19426 Page | 2 Table of Contents 1 EXECUTIVE SUMMARY 3 2 INTRODUCTION 10 3 METHOD 10 3.1 PARTICIPANTS 10 3.2 STUDY DESIGN 12 3.3 TASKS 13 3.4 RISK ASSESSMENT 1 4 3.4 PROCEDURE 15 3.5 TEST LOCATION 16 3.6 TEST ENVIRONMENT 16 3.7 TEST FORMS AND TOOLS 17 3.8 PARTICIPANT INSTRUCTIONS 17 3.9 USABILITY METRICS 19 3.10 DATA SCORING 20 4 RESULTS 21 4.1 DATA ANALYSIS AND REPORTING 21 4.2 DISCUSSION OF THE FINDINGS 25 5 APPENDICES 29 5.1 Appendix 1: Participant Demographics 30 5.2 Appendix 2: Informed Consent Form 31 5.3 Appendix 3: Example Moderator’s guide 32 5.4 Appendix 4: System Usability Scale questionnaire 43 5.5 Appendix 5: Acknowledgement Form 44 Page | 3 EXECUTIVE SUMMARY A usability test of PediatricXpress, version 20, ambulatory E.H.R. was conducted on selected features of the PediatricXpress version 20 E.H.R. as part of the Safety- Enhanced Design requirements outlined in 170.315(g)(3) between January 30th , 2019 and February 8, 2019 at 409 2nd Avenue, Collegeville, PA 19426. The purpose of this testing was to test and validate the usability of the current user interface and provide evidence of usability in the EHR Under Test (EHRUT).
    [Show full text]
  • Pycharm Reference Card.Pdf
    Default Keymap Default Keymap Default Keymap Editing Compile and Run Usage Search Ctrl + Space Basic code completion (the name of any class, method Alt + Shift + F10 Select configuration and run Alt + F7 / Ctrl + F7 Find usages / Find usages in file or variable) Alt + Shift + F9 Select configuration and debug Ctrl + Shift + F7 Highlight usages in file Ctrl + Alt + Space Class name completion (the name of any project class Shift + F10 Run Ctrl + Alt + F7 Show usages independently of current imports) Shift + F9 Debug Refactoring Ctrl + Shift + Enter Complete statement Ctrl + Shift + F10 Run context configuration from editor Ctrl + P Parameter info (within method call arguments) F5 Copy Debugging Ctrl + Q Quick documentation lookup F6 Move Shift + F1 External Doc F8 Step over Alt + Delete Safe Delete Ctrl + mouse over code Brief Info F7 Step into Shift + F6 Rename Ctrl + F1 Show descriptions of error or warning at caret Shift + F8 Step out Ctrl + F6 Change Signature Alt + Insert Generate code... Alt + F9 Run to cursor Ctrl + Alt + N Inline Ctrl + O Override methods Alt + F8 Evaluate expression Ctrl + Alt + M Extract Method Ctrl + Alt + T Surround with... Ctrl + Alt + F8 Quick evaluate expression Ctrl + Alt + V Introduce Variable Ctrl + / Comment/uncomment with line comment F9 Resume program Ctrl + Alt + F Introduce Field Ctrl + Shift + / Comment/uncomment with block comment Ctrl + F8 Toggle breakpoint Ctrl + Alt + C Introduce Constant Ctrl + W Select successively increasing code blocks Ctrl + Shift + F8 View breakpoints Ctrl + Alt + P Introduce
    [Show full text]
  • A Comparison of C++, C#, Java, and PHP in the Context of E-Learning
    A Comparison of C++, C#, Java, and PHP in the context of e-learning MIKAEL OLSSON KTH Information and Communication Technology Master of Science Thesis Stockholm, Sweden 2009 TRITA-ICT-EX-2009:8 A Comparison of C++, C#, Java, and PHP in the context of e‐learning Mikael Olsson April 30, 2009 Master’s Thesis in Computer Science Royal Institute of Technology Examiner: Prof. Gerald Q. Maguire Jr. ‐ i ‐ Abstract The first part of this master thesis presents an effective method for producing video tutorials. This method was used during this thesis project to create tutorials on the e- learning site PVT (http://www.programmingvideotutorials.com). Part one also discloses how the production method was developed and how tutorials produced using this method compare to professional video tutorials. Finally, it evaluates the result of this thesis work and the efficiency of the production method. The second part of this thesis compares the syntactical similarities and differences between four of the languages taught via video tutorials for PVT. These languages are: C++, C#, Java, and PHP. The purpose of this comparison is to provide a bridge for programmers knowing one of these languages to rapidly learn one or more of the other languages. The reason why this would be necessary is because there is no single language suited for every area of software development. Knowing a multitude of languages gives a programmer a wider range of job opportunities and more choices in how to solve their problems. Part two of the thesis also includes a comparison of Java and C# in the context of a video tutorial series that shows how to build a basic text editor.
    [Show full text]
  • Comparative Studies of 10 Programming Languages Within 10 Diverse Criteria
    Department of Computer Science and Software Engineering Comparative Studies of 10 Programming Languages within 10 Diverse Criteria Jiang Li Sleiman Rabah Concordia University Concordia University Montreal, Quebec, Concordia Montreal, Quebec, Concordia [email protected] [email protected] Mingzhi Liu Yuanwei Lai Concordia University Concordia University Montreal, Quebec, Concordia Montreal, Quebec, Concordia [email protected] [email protected] COMP 6411 - A Comparative studies of programming languages 1/139 Sleiman Rabah, Jiang Li, Mingzhi Liu, Yuanwei Lai This page was intentionally left blank COMP 6411 - A Comparative studies of programming languages 2/139 Sleiman Rabah, Jiang Li, Mingzhi Liu, Yuanwei Lai Abstract There are many programming languages in the world today.Each language has their advantage and disavantage. In this paper, we will discuss ten programming languages: C++, C#, Java, Groovy, JavaScript, PHP, Schalar, Scheme, Haskell and AspectJ. We summarize and compare these ten languages on ten different criterion. For example, Default more secure programming practices, Web applications development, OO-based abstraction and etc. At the end, we will give our conclusion that which languages are suitable and which are not for using in some cases. We will also provide evidence and our analysis on why some language are better than other or have advantages over the other on some criterion. 1 Introduction Since there are hundreds of programming languages existing nowadays, it is impossible and inefficient
    [Show full text]
  • International Journal for Scientific Research & Development| Vol. 6, Issue 01, 2018 | ISSN (Online): 2321-0613
    IJSRD - International Journal for Scientific Research & Development| Vol. 6, Issue 01, 2018 | ISSN (online): 2321-0613 Cloud Based Integrated Development Environment for C, C++, Java, C# Er Makrand Samvatsar1 Er Sorabh Gotam2 1Assistant Professor 2M.Tech Student 1,2Department of Computer Science & Engineering 1,2PCST, Indore (MP), India Abstract— Cloud based Integrated Development programs online. Once the language is chosen by the user environments is a cloud based application that provides the request is forwarded to the various compiler. Multiple facilities to engineer for computer code development like users will write programs in several programming languages code finishing and fixing, its source code editor and and can also compile and run the program. management, machine-driven testing, etc. computer code is quickly moving from the desktop to the online. The online II. WHY CLOUD BASED IDE provides a generic interface that enables present access, Software development is a very important activity in today’s instant collaboration, integration with different on-line world. In recent days, programmers using write codes into services, and avoids installation and configuration on the text files and so by use compiler and similar tools that desktop computers. Moving day to the online isn't simply a are command based mostly, these written codes were matter of porting desktop day, a basic reconsideration of the changed into software system programs. Because the IDE design is critical so as to understand the complete computers evolve, size and also the quality of software potential that the mix of recent day and therefore the internet system production raised. With this increasing quality, offers.
    [Show full text]
  • Link IDE : a Real Time Collaborative Development Environment
    San Jose State University SJSU ScholarWorks Master's Projects Master's Theses and Graduate Research Spring 2012 Link IDE : A Real Time Collaborative Development Environment Kevin Grant San Jose State University Follow this and additional works at: https://scholarworks.sjsu.edu/etd_projects Part of the Computer Sciences Commons Recommended Citation Grant, Kevin, "Link IDE : A Real Time Collaborative Development Environment" (2012). Master's Projects. 227. DOI: https://doi.org/10.31979/etd.rqpj-pj3k https://scholarworks.sjsu.edu/etd_projects/227 This Master's Project is brought to you for free and open access by the Master's Theses and Graduate Research at SJSU ScholarWorks. It has been accepted for inclusion in Master's Projects by an authorized administrator of SJSU ScholarWorks. For more information, please contact [email protected]. Link IDE : A Real Time Collaborative Development Environment A Project Report Presented to The Faculty of the Department of Computer Science San José State University In Partial Fulfillment of the Requirements for the Degree Master of Science in Computer Science by Kevin Grant May 2012 1 © 2012 Kevin Grant ALL RIGHTS RESERVED 2 SAN JOSE STATE UNIVERSITY The Undersigned Project Committee Approves the Project Titled Link : A Real Time Collaborative Development Environment by Kevin Grant APPROVED FOR THE DEPARTMENT OF COMPUTER SCIENCE SAN JOSÉ STATE UNIVERSITY May 2012 ------------------------------------------------------------------------------------------------------------ Dr. Soon Tee Teoh, Department
    [Show full text]