Title: Department of Computer and Information Science, School of Science, IUPUI
1Department of Computer and Information
Science,School of Science, IUPUI
CSCI 230
Introduction to Computers - Languages
Dale Roberts, Lecturer Computer Science,
IUPUI E-mail droberts_at_cs.iupui.edu
2Computer Organization
- A Typical Von-Neumann Architecture
- Example
- Input unit
- Output unit
- Memory unit
- Arithmetic and logic unit (ALU)
- Central processing unit (CPU)
- Secondary storage unit
3Programming Languages
- Machine languages (machine dependent)
- Native tongue of a particular kind of computer.
Each instruction is a binary string. The code is
used to indicate the operations to be performed
and the memory cells to be addressed. This form
is easiest form of computers to understand, but
is most difficult for a person to understand. - Strings of numbers giving machine specific
instructions - Example 1300042774
- 1400593419
- 1200274027
4Programming Languages (cont.)
- Assembly languages (machine dependent)
- English-like abbreviations representing
elementary computer operations (translated via
assemblers) - Again specific to only one type of computer. Uses
descriptive names for operations and data, e.g. ,
LOAD value, ADD delta, STORE value.
Assemblers will translate these to machine
languages. Intermediate level. Somewhat
descriptive, but basically following the machine
instructions. - Example LOAD BASEPAY
- ADD OVERPAY
- STORE GROSSPAY
5Programming Languages (cont.)
- High-level languages (machine independent)
- Codes similar to everyday English
- High-level languages Write program instructions
called statement that resemble a limited version
of English. e.g., the statement value value
delta. Portable, meaning it can be used on
different types of computers without
modifications. Compilers translate them to
machine languages. Examples are FORTRAN, PASCAL,
COBOL, C, C, BASIC etc. - Use mathematical notations (translated via
compilers) - Example
- grossPay basePay overTimePay
- Example
- Statement a a b
6Programming Languages (cont.)
- Structured programming
- Disciplined approach to writing programs
- Clear, easy to test and debug and easy to modify
- Multitasking
- Specifying that many
- activities run in parallel (still timesliced)
7Semantic Gap
- A semantic gap exists between the amount of
information conveyed in assembly language v high
level languages. Consider the following C single
statement x x 3 - This single statement may require many assembly
language statements (operations) Load memory
location 24 into accumulator Add a constant 3
to the accumulator Store accumulator in
memory location 24 - The number of executable statement expands
greatly during the translation process from a
high level language into assembly language.
8C Programming Language
- C
- High-level general-purpose language developed in
1972 at ATT Bell Lab. By Dennis Ritchie from two
previous programming BCPL and B - Originally developed to write the UNIX operating
system - Hardware independent (portable)
- By late 1970's C had evolved to "Traditional C"
- Today, virtually all new operating systems are
written in C or C. - The current standard in C is ANSI C.
- C is a more advanced version of C,
incorporating among other things, the
object-oriented constructs - Standardization
- Many slight variations of C existed, and were
incompatible - Committee formed to create a "unambiguous,
machine-independent" definition - Standard created in 1989, updated in 1999
- C has become a popular language industry due its
power and flexibility
9The C Standard Library
- C programs consist of pieces/modules called
functions - A programmer can create his own functions
- Advantage the programmer knows exactly how it
works - Disadvantage time consuming
- Programmers will often use the C library
functions - Use these as building blocks
- Avoid re-inventing the wheel
- If a pre-made function exists, generally best to
use it rather than write your own - Library functions carefully written, efficient,
and portable
10The C Standard Library (cont.)
- The Key Software Trend Objects in C and JAVA
- Reusable software components that model items in
the real world - Meaningful software units ex Date objects, time
objects, audio objects, video objects, file
objects, record objectsany noun can be
represented as an object - More understandable, better organized, and easier
to maintain than procedural programming - Favor modularity
11The C Standard Library
- include ltstdio.hgt
- main()
-
- int i
- for (i 0 i i lt 10)
-
- printf ("Hello World!\n")
-
12A Typical C Program Development Environment
- 1. Edit
- 2. Preprocess
- 3. Compile
- 4. Link
- 5. Load
- 6. Execute
13A Typical C Program Development Environment
(cont.)
- Procedure to Prepare a C Program for Execution
14Constructs in C Language
- Type Declarations ex int, float,
- I/O ex printf(), scanf()
- Arithmetic and Logical Operations ex
,-,,/,,gt,lt,, - Arrays, Pointers, Structures, Unions,
- Functions
- Arguments return values
- Recursion
- Control Mechanisms ex if, else, while, for,
- Characters Strings ex strcat(), strcpy(),
- File Processing ex fopen(), fclose(),
- Pre-processor ex define
- Misc.
- bit operations, ...
15Operation System (OS)
- Responsibilities
- Communicating with the computer user
- Managing allocation of memory, of processor
- time, and of other resources for various tasks
- I/O handling BIOS vs DOS services (Interrupts)
- Read/Write data from secondary storage
- Evolution of Operating Systems
- Batch processing do only one job or task at a
time - Operating systems manage transitions between
jobs and Increase throughput (amount of work
computers process) - Multiprogramming Computer resources are shared
by many jobs or tasks - Timesharing Technique used to implement
multiprogramming where the computer runs a small
portion of one users job then moves on to
service the next user
16Application Software
- Developed to assist a computer user in
accomplishing special tasks - ex word processing applications MS-word or
Word-perfect - ex Spreadsheet applications Lotus1-2-3, Excel
- ex Database Oracle, MS-Access
- Software Development Life Cycle (SDLC)
- Problem specify the problem requirements
- Analysis analyze the problem
- Design design the algorithm to solve the problem
- Implementation Implement the algorithm
- Testing test and verify the completed program
- Maintenance maintain and update the program