Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
9 views

Microcontroller Programing

Uploaded by

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

Microcontroller Programing

Uploaded by

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

ARUSHA TECHNICAL COLLEGE

MICROCONTROLLER
PROGRAMMING
Hardware/Software interface
Layers of the Machine
Kinds of Software
Computer Languages
Syntax, Semantics, Grammars
01 What happens to your program?
Compilation, Linking, Execution
INTRODUCTION TO Program errors

. COMPUTER Compilation vs. Interpretation etc.


PROGRAMMING
Software Categories

System SW
Programs written for computer systems
Compilers, operating systems, …

Application SW
Programs written for computer users
Word-processors, spreadsheets, & other application
packages
A Layered View of the Computer

Application Programs
Word-Processors, Spreadsheets,
Database Software, IDEs,
etc…
System Software
Compilers, Interpreters,Preprocessors, etc.
Operating System, Device Drivers

Machine with all its hardware


Operating System (OS)

∙ Provides several essential services:


• Loading & running application programs
• Allocating memory & processor time
• Providing input & output facilities
• Managing files of information
Programs

Programs are written in programming languages


PL = programming language
Pieces of the same program can be written in different PLs
• Languages closer to the machine can be more efficient
• As long as they agree on how to communicate
A PL is A special purpose and limited language
• A set of rules and symbols used to construct a computer
program. A language used to interact with the computer
Computer Languages

– Machine Language
• Uses binary code
• Machine-dependent
• Not portable

Assembly Language
• Uses mnemonics
• Machine-dependent
• Not usually portable
..
Computer Languages

High-Level Language (HLL)


• Uses English-like language
• Machine independent
• Portable (but must be compiled for different platforms)
• Examples: Pascal, C, C++, Java, Fortran, . . .
Machine Language

• The representation of a computer program read and understood


by the computer.
• A program in machine code consists of a sequence of machine
Operation Address
instructions. 0010 0000 0000 0100
Instructions: 0100 0000 0000 0101
0011 0000 0000 0110
• Machine instructions are in binary code
• Instructions specify operations and memory cells involved in
the operation
Assembly Language

• A symbolic representation of the machine language of a


specific processor.
• Is converted to machine code by an assembler.
• Usually, each line of assembly code produces one machine
instruction (One-to-one correspondence).
• Programming in assembly language is slow and error-prone
but is more efficient in terms of hardware performance.
• Mnemonic representation of the instructions and data
Example: Load Price ; Add Tax ; Store Cost
High-level language

• A programming language which use statements consisting of


English-like keywords such as "FOR", "PRINT" or “IF“, ... etc.
• Each statement corresponds to several machine language
instructions (one-to-many correspondence).
• Much easier to program than in assembly language.
• Data are referenced using descriptive names
• Operations can be described using familiar symbols
Example:
Cost := Price + Tax
Syntax & Semantics
Syntax:
• The structure of strings in some languages. A grammar describes a
language’s syntax
Examples:
Binary number
<binary_number> = <bit> | <bit> <binary_number>
<bit> =0|1
Identifier
<identifier> = <letter> {<letter> | <digit> }
<letter> =a|b|...|z
<digit =0|1|...|9
Semantics:
The meaning of the language
Syntax & Grammars

• Syntax descriptions for a PL are themselves written in a formal


language.
E.g. Backus-Naur Form (BNF)
• The formal language is not a PL but it can be implemented by
a compiler to enforce grammar restrictions.
• Some PLs look more like grammar descriptions than like
instructions.
Compilers & Programs

Compiler
• A program that converts another program from some
source language (or high-level programming language / HLL)
to machine language (object code).
• Some compilers output assembly language which is then
converted to machine language by a separate assembler.
• Is distinguished from an assembler by the fact that each
input statement, in general, correspond to more than one
machine instruction.
Compilation into Assembly L

Source Assembly
Program Compiler Language

Assembly Machine
Assembler
Language Language
Compilers & Programs
Source program
• The form in which a computer program, written in some
formal programming language, is written by the
programmer.
• Can be compiled automatically into object code or machine
code or executed by an interpreter.
• Pascal source programs have extension ‘.pas’
Compilers & Programs

Object program
• Output from the compiler
• Equivalent machine language translation of the source
program
• Files usually have the extension ‘.obj’
Executable program
• Output from linker/loader
• Machine language program linked with necessary libraries
& other files
• Files usually have the extension ‘.exe’
What is a Linker?

• A program that pulls other programs together so that they can


run.
• Most programs are very large and consist of several modules.
• Even small programs use existing code provided by the
programming environment called libraries.
• The linker pulls everything together and makes sure that
references to other parts of the program (code) are resolved.
Running Programs

• Steps that the computer goes through to run a program:


Memory
Machine language
program
(executable file)
Input Data Data entered CPU
during execution

Computed results
Program Output
Program Execution

• Steps taken by the CPU to run a program (instructions are in


machine language):
1. Fetch an instruction
2. Decode (interpret) the instruction
3. Retrieve data, if needed
4. Execute (perform) actual processing
5. Store the results, if needed
Program Errors

• Syntax Errors: Errors in the grammar of the language


• Runtime error: When there are no syntax errors, but the
program can’t complete execution
• Divide by zero
• Invalid input data
• Logical errors: The program completes execution, but delivers
incorrect results
• Incorrect usage of parentheses
Compilation
Source Target
Program Compiler Program

Input Target Program Output

• Compiler translates source into target (a machine language program)


• Compiler goes away at execution time
• Compiler is itself a machine language program, presumably created by
compiling some other high-level program
• Machine language, when written in a format understood by the OS is
object code
Interpretation

Source
Program

Interpreter Output

Input

•The interpreter stays around during the execution


•It reads and executes statements one at a time
Compilation vs. Interpretation

Compilation:
• Syntax errors caught before running the program
• Better performance
• Decisions made once, at compile time
Interpretation:
• Better diagnostics (error messages)
• More flexibility
Compilation vs. Interpretation

• Supports late binding (delaying decisions about program


implementation until runtime)
• Can better cope with PLs where the type and size of
variables depend on input
• Supports creation/modification of program code on the fly
(e.g. Lisp, Prolog)
Mixture of C & I
Source Intermediate
Program Translator Program

Intermediate
Program
VM Output

Input

•Many programming languages implement this


•Interpreter implements a Virtual Machine (VM).
JAVA
For portability:

Java Compiler

bytecode

ML Interpreter

• For flexibility: Just In Time (JIT) compiler translates


bytecode into ML just before execution

You might also like