1. A B R I E F I N T R O D U C T I O N
D A V I D T U R N E R
COMPUTER
PROGRAMMING
2. COMPUTER PROGRAMMING
• Computers are complex, intricate machines built on
simple principles.
• Computers interpret all commands and data as binary
digits, 1’s and 0’s.
• Programming languages
• Provide an accessible, coherent interface for people to
compose varied instructions for the computer to execute.
• Like a language, they each include their own syntax,
vocabulary, and rules.
5. ASSEMBLY LANGUAGE
• What is an Assembly Language?
• The symbolic, abstractive representation of a computer’s
binary encoding – machine language.
Source: http://www.allbusiness.com/glossaries/assembly-
language/4942588-1.html
6. ASSEMBLY LANGUAGE
• Symbolic depiction of code allows for clear,
intuitive understanding for each instruction
• Logical Acronyms vs. meaningless strings of 1’s 0’s.
• Allows programmer to think more abstractly
• Reduces time necessary to construct programs.
• In-depth, specific control of the hardware.
7. ASSEMBLY LANGUAGE
• Machine language
• A combination of circuits with a logical ‘true’ and ‘false’.
• Read in code as a multiple lines of 1’s and 0’s.
• There is a one-to-one correspondence between assembly
and machine code.
Source: http://writinginmediasres.blogspot.com/2011/08/world-of-1s-and-0s.html
9. LOW-LEVEL LANGUAGE
• What is a Low-Level Programming Language?
• A programming language with limited to no abstraction of
the instruction set of the microprocessor.
• 1 coded instruction <= Few Computer Instruction
• Low-level languages vary in complexity.
• Assembly is a Low-Level Language
• Requires understanding of hardware constraints.
• Old, primitive means of programming
• Still applicable in specific instances.
10. LOW-LEVEL LANGUAGE
• Advantages of Low-level Programming?
• Enables programmer explicit control of anything the
hardware will allow.
• Requires less memory, runs more quickly.
• Low-level languages do not require translation before being
executed.
source: http://www.cise.ufl.edu/~mssz/CompOrg/CDA-lang.html
13. HIGH-LEVEL LANGUAGE
• What is a High-Level Programming language?
• A programming language that utilizes a high level of
abstraction, with the intention of improving functionality
and time efficiency.
• Most programmers program in high-level
• Significant time-savings in writing code.
• Reduces human error.
• Instructions are simple, and easily read.
• Pre-written functions are built into hardware.
14. HIGH-LEVEL PROGRAMMING
• Advantages of High-Level Programming?
• High level of portability among varying computers.
• Instructions are abstract.
• More related to the physical problem the programmer wishes to
solve than the confusing dynamics of the computer.
• Increases efficiency.
• Programs consist of smaller number of coded lines
• Programs require less time to write.
15. PROGRAMMING LANGUAGES
• What Language to choose, and when?
• The answer is complex is complex, and dependent on a
multitude of factors:
• Speed
• Portability
• Experience with the specified programming language.
• Programming languages are like tools.
• Some are only appropriate for very specific tasks.
• Others are more broad and generalized
• The best programmers knows when to program in any
given language.