| Literature DB >> 29300745 |
Maureen A Carey1, Jason A Papin2.
Abstract
Entities:
Mesh:
Year: 2018 PMID: 29300745 PMCID: PMC5754048 DOI: 10.1371/journal.pcbi.1005871
Source DB: PubMed Journal: PLoS Comput Biol ISSN: 1553-734X Impact factor: 4.475
Fig 1The “one tool to rule them all” (or: how programming languages do not work).
A noninclusive discussion of programming languages.
A shell is a command line (i.e., programming) interface to an operating system, like Unix operating systems. Low-level programming languages deal with a computer’s hardware. The process of moving from the literal processor instructions toward human-readable applications is called “abstraction.” Low-level languages require little abstraction. Interpreted languages are quicker to test (e.g., to run a few lines of code); this facilitates learning through trial and error. Interpreted languages tend to be more human readable. Compiled languages are powerful because they are often more efficient and can be used for low-level tasks. However, the distinction between interpreted and compiled languages is not always rigid. All languages presented below are free unless noted otherwise. The Wikipedia page on programming languages provides a great overview and comparison of languages.
| Language | Key features | Documentation | Sample tutorials | Community groups |
|---|---|---|---|---|
| • Most common Unix shell | • | • The Linux Documentation Project’s Beginner’s guide: | • Google Plus: | |
| • General purpose language | • | • Google’s Python class: | • Python Users Group: | |
| • Community involvement | • | • R for cats: | • R-Ladies: | |
| • Statistical computing | • | • Boston University’s SAS Training for Statistics: | • SAS User Groups: | |
| • Well-developed applications in engineering | • | • Cyclismo’s MATLAB Tutorial: | • MATLAB Central: | |
| • General purpose language | • | • Beginning Perl: | • Perl Mongers: | |
| • Numeric computation | • | • many at Fortran wiki: | • Fortran Friends: | |
| • Low-level language | • | • C programming’s tutorial: | • Standard C++ Foundation: |
Fig 2Anatomy of an error message, Part 1 (or: How to write more than one line of code).
Here we show an example of the debugging process in R using the RStudio environment, with the goal of concatenating two words.
Fig 5Anatomy of an error message, Part 4 (or: Debugging a solution).
Lastly, we show how to debug a solution to understand a line of code found on the internet.
Fig 3Anatomy of an error message, Part 2 (or: Just because it works, doesn’t mean it’s right).
Here we provide more examples of the debugging process. Examples shown in Figs 3–5 are conducted in Python using a Jupyter notebook. Environments like RStudio (in Fig 2) and Jupyter notebooks are two examples of integrated development environments; these environments offer additional support, including built-in debugging tools. First, we show an error that does not induce an error message, but the user must debug nonetheless.
Fig 6“How to exit the vim editor?” (or: We all get stuck at some point).
Now viewed >1.33 million times; see: http://stackoverflow.com/questions/11828270/how-to-exit-the-vim-editor.