[go: up one dir, main page]

0% found this document useful (0 votes)
31 views24 pages

2 Introduction

The document provides an overview of computer programming including an introduction to programming languages, integrated development environments, compilers, and the basic steps involved in programming. It describes the different levels of programming languages from machine language to assembly language to high-level languages. It also discusses the basic hardware components of a computer system and elements of a simple program in C.

Uploaded by

sium1111111
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views24 pages

2 Introduction

The document provides an overview of computer programming including an introduction to programming languages, integrated development environments, compilers, and the basic steps involved in programming. It describes the different levels of programming languages from machine language to assembly language to high-level languages. It also discusses the basic hardware components of a computer system and elements of a simple program in C.

Uploaded by

sium1111111
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

Overview of Programming

CSE115: Programming Language I


Introduction
• Computer Programming
• Computer cannot do anything by itself
• Need to provide command (=set of instructions)
• Now compare it with a calculator
• Understanding Print
• Integrated development environment (IDE)
https://en.wikipedia.org/wiki/Integrated_development_environment
• Notepad is an IDE
• We will use Code::Blocks as IDE
• Compiler
• Install codeblocks-20.03mingw-setup.exe
• IDE
• Compiler
Hello.c Hello.o Hello.exe
Source File Compiler Machine-language
Linker Executable File
File

Library Code
Steps of
programming

Integrated Development
Environment (IDE) =
Editor + Compiler +
Linker + Loader
Elements of Computer Systems
Two major categories:
1. Hardware
2. Software

• Hardware: Hardware is the equipment used to perform


the necessary computations and includes the central
processing unit (CPU), monitor, keyboard, mouse, printer,
and speakers.

• Software: Software consists of the programs that enables


us to solve problems with a computer by providing it with
lists of instructions to perform.
Computer Hardware Components

Components of a PC
Input / Output Devices
• Input Devices
• Accepts information from the user and
transforms it to digital codes that the computer
can process
• Example: keyboard, mouse, scanner
• Output Devices
• An interface by which the computer conveys
the output to the user
• Example: monitor, printer
Storage Devices
• A device used to store a large amount of
information.
• Store the instructions and/or data needed for the
computer to execute its tasks.
• Can be “read only” or “writable”.
• Example: Solid State Drive (SDD), Hard drive
(HDD), CD ROM, floppy disks
Main Memory
• A semiconductor device which stores the information
necessary for a program to run.
• Two types:
• ROM (Read Only Memory)
• Contains information that is necessary for the
computer to boot up
• The information stays there permanently even
when the computer is turned off.
• RAM (Random Access Memory)
• Contains instruction or data needed for a program
to run
• Gets erased when the computer is turned off.
Anatomy of Memory
Central Processing Unit (CPU)
• Does most of the work in
executing a program
• The CPU inside a PC is usually
the microprocessor
• 3 main parts:
• Control Unit: Fetch instructions
from main memory and put them
in the instruction register
• ALU (Arithmetic Logic Unit):
Execute arithmetic and logical
operations
• Registers: Temporarily store
instructions or data fetched from
memory Von Neumann architecture
Computer Software
• Two Types:
• Operating System (OS): Software that controls interaction of user
and computer hardware and that manages allocation of
computer resources.
• Application Software: Software used for a specific task such as
word processing, accounting, or database management.
• A software is a collection of related programs and
associated data files.
• A program is a sequence of instructions to solve a problem
Writing Computer Program
• Computer needs our instructions in order to solve any
problem. It can’t solve any problem by itself.
• Programming is the task of writing a sequence of
instructions for a computer to do something for you.
• Programmer: who writes program
• User: who runs program, gives input to it, and sees its output
• But Computer doesn’t understand anything other than 0
and 1 (binary numbers).
• So we have to either (i) learn computer’s own language
(machine language) and then instruct it in that language or
(ii) learn a programming language which is easier for
humans to understand, write instructions in that language,
and then translate (compile) the resulting program into a
sequence of machine understandable (binary) instructions.
Hierarchies of Programming Languages
• Machine Language (low level):
– Binary codes understood by a specific CPU

• Assembly Language (mid level):


– Mnemonic codes that correspond to machine language instructions

• High-level language:

– Machine-independent programming language. Combines arithmetic


expressions and English symbols. Easier to understand for humans.
Machine Language
• The only language that the processor actually 'understands’
• Consists of binary codes: 0 and 1
• Example: 00010101
11010001
01001100
10011001
• Each of the lines above corresponds to a specific task to be done by
the processor.
• Programming in machine code is difficult and slow since it is
difficult to memorize all the instructions.
• Mistakes can happen very easily.
• Processor and Architecture dependent
Assembly Language
• Enables machine code to be represented in words and numbers.
• Example of a program in assembly language:
LOAD A, 9999
LOAD B, 8282
MOV C, A
DIV A, C
Easier to understand and memorize (called Mnemonics), compared
to machine code but still quite difficult to use.
• Processor and Architecture dependent
High-Level Language
• Use more English words. They try to resemble English sentences.
Therefore, it is easier to program in these languages.
• The programming structure is problem oriented - does not need to
know how the computer actually executes the instructions.
• Processor independent - the same code can be run on different
processors.
• Examples of High-Level Languages: Fortran, Pascal, C, C++, Java,…
• Example code written in C:
A = C;
A = A/C;
• A high level language needs to be analyzed by the compiler and
then compiled into machine code so that it can be understood and
executed (i.e. performed) by the processor.
A Simple Program in C
#include <stdio.h>
#include <stdlib.h>

int main()
{
printf("Hello world!\n");
return 0;
}
A Simple Program in C
#include <stdio.h>
standard Library, input-output, header-file
#include <stdlib.h>
Start of Segment
Beginning of program
int main()
{ Function for printing text

printf("Hello world!\n");
return 0; End of statement

} Insert a new line

End of Segment
Output

Hello world!
Suggested reading
• Book
• Chapter 1
• Problem Solving and Program Design in C-Addison-Wesley
(Eight Edition)
• Jeri R. Hanly, Elliot B. Koffman

• Website: W3Schools
https://www.w3schools.com/c/c_getstarted.php

You might also like