Ser321 Principles of Distributed Software Systems 1 ...

cnCmdLineEditCompileDebug.fm

Course Review Notes

Ser321 Principles of Distributed Software Systems 1. Command Line - Edit, Compile, Debug with Unix Tools

Principles of Distributed Software Systems ? Tim Lindquist 2018

January 2018

Page 1

cnCmdLineEditCompileDebug.fm

Course Review Notes

1.a Motivation, Outcomes and References

1.a.1 Why Command Line Software Development

? More than a History Lesson?

- Substantial software packages (embedded and open-source, for example) are distributed and build using the command line.

- Today, a majority of the functionality found in an Integrated Development Environment (IDE) is based-on (directly uses) command line tools.

? Still, why? "Thank you, but I get along nicely without knowing what my IDE does to provide me the functionality I need."

- Using the command line requires knowledge of the underlying system.

- Learning to develop using command line tools reveals more (and requires more) knowledge of how languages are processed. That's part of Ser321's purpose. And, about 80% of all digital devices run Android, which is Linux.

- The more you know of how languages are compiled/executed, and the more you know of the differences between languages, the better you are able to utilize the features of languages.

Principles of Distributed Software Systems ? Tim Lindquist 2018

January 2018

Page 2

cnCmdLineEditCompileDebug.fm

Course Review Notes

1.a.2 Outcomes for this Section

? Students will be able to:

- Utilize the common commands of the bash command processor. In particular, interactively editing commands, manipulating environment variables, managing files, directories and their permissions, command piping, and command re-direction.

- Use g++ (GNU C++ Compiler) compiler and javac (Oracle) compiler from the command line to compile (and link) C/C++ and Java programs. Understand and be able to utilize the basic compilation options, switches and command-line arguments.

- Use the gdb (GNU debugger) and jdb (Java debugger) from the command line utilizing its primary features: setting breakpoints, controlling execution, examining a program's data during its execution, and changing that data.

- Utilize the basic program building and configuration features of ant (primarily for Java) and make (primarily for C-based programs).

- Understand, utilize, and configure the runtime environment for C-based languages and java.

Principles of Distributed Software Systems ? Tim Lindquist 2018

January 2018

Page 3

cnCmdLineEditCompileDebug.fm

Course Review Notes

1.a.3 References for Command-Line Program Development

? Tutorials - Bash command interpreter prompt. See Getting Started With Bash: - Unix Programming Tools for gcc. See Stanford's Tutorial (Parlante):



- GNU C Compiler (gcc) Tutorial. See Serguuei Mokhov:

? The examples in this section have been compiled and run on Debian Linux. - Java standard edition See:



? Gcc for C/C++ (plus Objective-C and Swift for MacOS). See:

Principles of Distributed Software Systems ? Tim Lindquist 2018

January 2018

Page 4

cnCmdLineEditCompileDebug.fm

Course Review Notes

1.b Basics of bash

1.b.1 Pre-requisite Topics and Concepts for Linux & Bash

? File System - Hierarchical file system of named folders and files. - Name uniqueness within a folder. - Absolute pathnames: /home/mydir /usr/local/include/FL/Fl_Window.H - Relative pathnames: based on the notion of a current directory src/java/server/MyServer.java lib/json.jar

? Environment Variables

? General Command syntax: - programSpecifier arg1 arg2 arg3 arg4 - java -cp classes MyMainClass arg1 arg2 arg3

Principles of Distributed Software Systems ? Tim Lindquist 2018

January 2018

Page 5

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download