Sie sind auf Seite 1von 16

Department of Computer and Information Science,

School of Science, IUPUI

CSCI 230

Introduction to Computers
- Languages

Dale Roberts, Lecturer


Computer Science, IUPUI
E-mail: droberts@cs.iupui.edu
Computer Organization
A Typical Von-Neumann Architecture
CPU
Control Circuit
(ex: PC: Program Counter)
Memory I/O
ALU

Example:

1. Input unit
2. Output unit
3. Memory unit
4. Arithmetic and logic unit (ALU)
5. Central processing unit (CPU)
6. Secondary storage unit
Programming Languages
1. 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
Programming Languages (cont.)
2. 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
Programming Languages (cont.)
3. 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 a
10
Before b
7
Example:
Statement: a= a + b a
17
After
b 7
Programming 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)
Language Application Area Origin of Name

FORTRAN Scientific programming Formula Translation


COBOL Business data Processing Common Business-Oriented Language
Lisp Artificial Intelligence (AI) List Processing
C System Programming Predecessor B
Prolog AI Logic Programming
Ada Real-time distributed systems Ada Augusta Byron & Charles
Babbage
Smalltalk GUI, OOP Objects “talk” via message
C++ Supports object & OOP C (++ is the increment operator)
JAVA SupportsWeb programming Originally named “Oak”
Semantic 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.
C Programming Language
C
High-level general-purpose language developed in 1972 at AT&T 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
The 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
The 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 objects…a ny noun can
be represented as an object
More understandable, better organized, and easier to
maintain than procedural programming
Favor modularity
The C Standard Library
#include <stdio.h>

main()
{
int i;
for (i = 0; i ++; i < 10)
{
printf ("Hello World!\n");
}
}
A Typical C Program Development Environment
•Phases of C Programs:
Editor Disk
1. Program is created in the
editor and stored on disk
1. Edit
2. Preprocessor program
Preprocessor Disk processes the code 2. Preprocess
Compiler 3. Compiler creates object
Disk
code and stores it on disk. 3. Compile
Linker Disk 4. Linker links the object
code with the
libraries
4. Link
Primary Memory

Loader 5. Load
5. Loader puts program

Disk
in memory.
6. Execute

Primary Memory

CPU
6. CPU takes each instruction
and executes it, possibly
storing new data values as
the program executes
A Typical C Program Development Environment (cont.)
• Procedure to Prepare a C Program for Execution
Enter the program code and
save as a source (*.c) file using
Word Processor (editor)

Revised
Source (.c) source file Correct
Compiler attempts to Failure
file on disk syntax
translate the program
(Format: text) errors
into machine code
List of errors
Success

The linker links the


New object new object file with Other object
(*.obj) files other object files (*.obj) files
(Format: binary)

Input data

Executable The loader places the Executable


(*.exe, *.out) file executable file into program in
(Format: binary) memory memory Welcome to
CSCI230

Results
Constructs in C Language
Type Declarations: ex: int, float,…
I/O: ex: printf(), scanf()
Arithmetic and Logical Operations: ex: +,-,*,/,%,>,<,==,…
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, ...
Operation System (OS)
Responsibilities: Command-line
Interface
Graphical User
Interface (GUI)
Communicating with the computer user UNIX MacOS
Managing allocation of memory, of processor MS_DOS
VMS
Windows
X Windows
time, and of other resources for various tasks (linux and solaris)

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 user’s job
then moves on to service the next user
Application 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

Das könnte Ihnen auch gefallen