Module 5 Chapter 6 Platform Technologies
Module 5 Chapter 6 Platform Technologies
3. Learning Outcome
It contains the list of competencies that students should acquire during the
learning process.
//Based from the CMO/PSG of the Program
It maybe per topic or per module
4. Learning Content
Topics for Module 5 - Computer Software, Programming Languages, and Program
Development
Topic 1: Classification of Software
The term 'software' refers to the set of electronic program instructions or data a
computer processor reads in order to perform a task or operation. In contrast, the term
'hardware' refers to the physical components that you can see and touch, such as the
computer hard drive, mouse, and keyboard.
Software, instructions that tell a computer what to do. Software comprises the
entire set of programs, procedures, and routines associated with the operation of a
computer system. The term was coined to differentiate these instructions
from hardware—i.e., the physical components of a computer system. A set of instructions
1. System Software
A system software aids the user and the hardware to function and interact
with each other. Basically, it is a software to manage computer hardware behavior
so as to provide basic functionalities that are required by the user. In simple words,
we can say that system software is an intermediator or a middle layer between the
user and the hardware. This computer software sanctions a platform or
2. Application Software
Web Browsers: These applications are used to browse the internet. They help the
user in locating and retrieving data across the web. Some examples of web browsers are:
• Google Chrome
• Internet Explorer
• Microsoft Edge
• Mozilla Firefox
• Opera
• Safari
• UC Browser
Other than these, all the software that serves a specific purpose fall under the
category of Application Software.
However, there exists one more classification of the software. The software can
also be classified based on their availability and shareability.
2. Shareware
It is a software that is freely distributed to users on a trial basis. It usually
comes with a time limit and when the time limit expires, the user is asked to pay
for the continued services. There are various types of shareware like Adware,
Donationware, Nagware, Freemium, and Demoware (Cripplewareand Trialware).
Some examples of shareware are:
• Adobe Acrobat
3. Open-source
These kinds of software are available to users with the source code which
means that a user can freely distribute and modify the software and add additional
features to the software. Open-Source software can either be free or chargeable.
Some examples of open-source software are:
• Apache Web Server
• GNU Compiler Collection
• Moodle
• Mozilla Firefox
• Thunderbird
COMPUTER ORGANIZATION
Regardless of differences in physical appearance, virtually every computer may
be envisioned as being divided into six logical units or sections. These are:
1. Input Unit – This is the “receiving” section of the computer. It obtains information
(data and computer programs) from various input devices and places this
information at the disposal of the other units so that the information may be
processed.
2. Output Unit – this is the “shipping” section of the computer. It takes information
that has been processed by the computer and places it on various output devices
to make the information available for use outside the computer.
3. Memory Unit – This is the rapid access, relatively low-capacity “warehouse”
section of the computer. It retains information that has been entered through the
First Generation
The most fundamental way to program a computer, using instructions made up
entirely of strings of 0sand 1s. The key concept is that, language designs were based
directly on available hardware. Language names are acronyms and are typically spelled
with all capital letters.
Third Generation
A programming language whose statements are translated into machine language
instruction. Examples of high level languages are BASIC, FORTRAN, COBOL, and
PASCAL.
A high-level programming language is a programming language that is more user-
friendly. Instructions in this language must be translated by a compiler or interpreter
before they can be processed.
First and second and third generation languages are all procedural languages
because the programmer must write each step and must use logical control structures to
indicate the or order in which the instruction are to be executed.
Fourth Generation
Nonprocedural languages are easier to code but it gives you less control over how
each task is actually performed.
Example: SQL
Features of 4Gls:
• Easy to learn, understand.
• Convenient for accessing database.
• Focuses on maximizing human productivity rather than minimizing
computer time.
• Nonprocedural
Fifth Generation
Nonprocedural languages they are most often used to access database or to build
expert systems.
Example is the Prolog.
Problem Definition
Program Design
The next stage is the program design. The software developer makes use of tools
like algorithms and flowcharts to develop the design of the program.
Algorithm
An algorithm is a step-by-step description of how to arrive at a solution in
the most easiest way. Algorithms are not restricted to computer world only. In fact,
we use them in everyday life.
Flowchart
A flowchart is a diagram that shows the logic of the program. A flowchart is
a formalized graphic representation of a logic sequence, work or manufacturing
process, organization chart, or similar formalized structure. The purpose of a flow
chart is to provide people with a common language or reference point when dealing
with a project or process.
For example:
Debugging
At this stage the errors in the programs are detected and corrected. This stage of
program development is an important process. Debugging is also known as program
validation.
Some common errors which might occur in the programs include:
• Un initialization of variables.
• Reversing of order of operands.
ISUE–CCSICT –IM-092 - Instruction Material Page 19
ISUE__ __ Syl ___
Revision: 02
Effectivity: August 1, 2020
• Confusion of numbers and characters.
• Inverting of conditions e.g. jumping on zero instead of on not zero.
Testing
The program is tested on a number of suitable test cases. A test plan of the
program has to be done at the stage of the program design itself. This ensures a thorough
understanding of the specifications. The most trivial and the most special cases should
be identified and tested. It is always useful to include the maximum and minimum values
of all variables as test data.
Testing a program requires three separate activities: desk checking, translation
and debugging.
Desk Checking
Process of sitting in a desk and checking the source code, proofreading it
for obvious syntax errors as well as looking for logical errors which are not
immediately detectable.
Types of errors
Syntax Errors. Violations of the rules of a specific programming
language.
Logical Errors. Mistakes in the algorithm or program design which
are not easily detected.
Translation
It is the conversion of the source code to the internal instructions that the
computer required. During translation, another computer program called the
translator checks for and finds all syntax errors which may be corrected once the
computer issues diagnostic messages which inform the user of the errors.
Debugging
Refers to the process of detecting, locating and correcting logic errors
(bugs) by submitting a translated program to the computer for execution and
seeing what happens. For this purpose, valid test data must be administered to
see how the program will fare in a similar situation.
Documentation
Maintenance
Updating and correction of the program for changed conditions and field
experience is accounted for in maintenance. Maintenance becomes essential in following
situations:
Change in specification,
Change in equipment, and
Errors which are found during the actual execution of the program.
Software development tools can be things like interpreters that work directly with
code, but they can also be tools that help to make the lives of developers simpler and
easier. For instance, while a user panel assigned to answering the questions of
programmers and sharing knowledge might not have a direct influence on the
development of a particular piece of software, but it does provide relevant solutions for
developers who necessitate answers to vital questions.
So, you can find a very wide variety of other options in the category of software
development tools. Anything that might help to boost the efficiency and accuracy can be
conceivably be added to this category, including communication tools like Slack, libraries
like Stack Overflow, and repositories like GitHub.
Assembler
An assembler translates a program written in assembly language into machine
language and is effectively a compiler for the assembly language, but can also be used
interactively like an interpreter. Assembly language is a low-level programming language.
Low-level programming languages are less like human language in that they are more
difficult to understand at a glance; you have to study assembly code carefully in order to
follow the intent of execution and in most cases, assembly code has many more lines of
code to represent the same functions being executed as a higher-level language. An
assembler converts assembly language code into machine code (also known as object
code), an even lower-level language that the processor can directly understand.
The Assembler is used to translate the program written in Assembly language into
machine code. The source program is a input of assembler that contains assembly
language instructions. The output generated by assembler is the object code or machine
code understandable by the computer.
Compiler
Compilers convert high-level language code to machine (object) code in one
session. Compilers can take a while, because they have to translate high-level code to
lower-level machine language all at once and then save the executable object code to
memory. A compiler creates machine code that runs on a processor with a specific
Instruction Set Architecture (ISA), which is processor-dependent. For example, you
cannot compile code for an x86 and run it on a MIPS architecture without a special
compiler. Compilers are also platform-dependent. That is, a compiler can convert C++,
for example, to machine code that’s targeted at a platform that is running the Linux OS.
A cross-compiler, however, can generate code for a platform other than the one it runs
on itself.
Interpreter
The translation of single statement of source program into machine code is done
by language processor and executes it immediately before moving on to the next line is
called an interpreter. If there is an error in the statement, the interpreter terminates its
translating process at that statement and displays an error message.
Compilers translate code all at once and the processor then executes upon the
machine language that the compiler produced. If changes are made to the code after
compilation, the changed code will need to be compiled and added to the compiled code
(or perhaps the entire program will need to be re-compiled.) But an interpreter, although
skipping the step of compilation of the entire program to start, is much slower to execute
than the same program that’s been completely compiled.
The interpreter moves on to the next line for execution only after removal of the
error. An Interpreter directly executes instructions written in a programming or scripting
language without previously converting them to an object code or machine code.
Editor
A code editor is the place where programmers spend most of their time.
There are two main types of code editors: IDEs and lightweight editors. Many
people use one tool of each type.
IDE
The term IDE (Integrated Development Environment) refers to a powerful
editor with many features that usually operates on a “whole project.” As the name
suggests, it’s not just an editor, but a full-scale “development environment.”
An IDE loads the project (which can be many files), allows navigation
between files, provides autocompletion based on the whole project (not just the
open file), and integrates with a version management system (like git), a testing
environment, and other “project-level” stuff.
Examples of IDE:
• Visual Studio Code (cross-platform, free).
• WebStorm (cross-platform, paid).
For Windows, there’s also “Visual Studio”, not to be confused with “Visual
Studio Code”. “Visual Studio” is a paid and mighty Windows-only editor, well-suited
Lightweight editors
“Lightweight editors” are not as powerful as IDEs, but they’re fast, elegant
and simple.
They are mainly used to open and edit a file instantly.
The main difference between a “lightweight editor” and an “IDE” is that an
IDE works on a project-level, so it loads much more data on start, analyzes the
project structure if needed and so on. A lightweight editor is much faster if we need
only one file.
In practice, lightweight editors may have a lot of plugins including directory-
level syntax analyzers and autocompleters, so there’s no strict border between a
lightweight editor and an IDE.
The following options deserve your attention:
• Atom (cross-platform, free).
• Visual Studio Code (cross-platform, free).
• Sublime Text (cross-platform, shareware).
• Notepad++ (Windows, free).
• Vim and Emacs are also cool if you know how to use them.
Commands in Debug
• A (Assemble)
Allows you to create program in mnemonic or symbolic code. It also
translates this assembly source statements that you create into machine code.
Ex: -A 0100
• D (Display or Dump)
Displays the content of a portion memory in hex and ASCII forms starting
with the given address.
Ex: D 0200
• E (Enter)
Enables you to key in data or machine instructions into memory beginning
at a specific location address.
Ex: -E 0200
• G (Go)
Runs the program as a whole in memory and displays the output.
Ex: -G
• H (Hexarithmic)
Shows the sum and difference of two 4-bit hexadecimal numbers, coded as
H <hex value> <hex value>
Ex: -H 000C 0008
• N (Name)
H e l l o space W o r l d !
48 65 6C 6C 6F 20 57 6F 72 6C 64 21
Add the last number 24h which is the equivalent of $ symbol. The $ symbol indicates that
it is already the end of the string.
Enter the hex codes using the command E and the offset address which is 0100. Press
the space every after hex code entered.
SUB (Subtract)
• It is used to get the difference of two registers or a register and an immediate
data, and stores the result to the left most register.
Example: MUL CX
DIV (Divide)
• It is used to divide the value of a given register and AX register, and
stores the quotient to AX and the remainder to DX registers respectively.
Example: INC AX
INC CH
DEC (Decrement)
• The opposite of INC, instead of increasing, it decreases the value of the
register by one (1)
Example: DEC AX
DEC CH
LOOP (Loop)
• It controls the execution of a program segment in a specified number of
times. The CX register should contain a count value before starting the
loop and automatically decrements by one (1). If CX is not equal to zero
(0), it transfers to its operand address which points to the start of the
loop; otherwise it drops through to the next instruction.
- A 0100
1035:0100 mov ax,D0C1
1035:0103 mov cx,0E05
1035:0105 add ax,cx
1035:0108 dec ax
1035:010A int 20
1035:010C
-
2. Displaying the same character (lowercase ‘z’) thirty times using loop on the screen.
-A 0100
1358:0100 MOV CX,001E ;setting the number of loops
1358:0103 MOV AH,2 ;request display character
1358:0105 MOV DL,7A ;character to display
1358:0107 INT 21 ;call interrupt service
1358:0109 LOOP 0107 ;go to offset 0107
1358:010B INT 20 ;end
Assessment Task 1
TEST 1. TRUE OR FALSE: Read the statements carefully. Write T if is correct otherwise, write F
on the space before the number.
___1. Programs are set of instructions that performs specific task.
___2. Computers are made to perform instructions given to them.
___3. Digital representation means the manipulation of “on” and “off” signals to perform tasks.
___4. In hardware concepts, computer can directly accept and process instructions written in
any programming language.
___5. Anything that can be store electronically are called software.
___6. There are two categories of software, the system software and application software.
___7. In SDLC, planning phase is where system/program requirements are identified.
___8. The design phase in SDLC involves identification for the enhancement/s of the current
system being used.
___9. Algorithm is not a programming tool it just shows the sequence in solving the particular
problem.
___10. Implementation phase involves coding, testing and installation.
___11. Algorithm is defined as well-defined, simple mathematical and logical procedures that can
be followed to solve a problem in a finite number of steps.
___12. Instructions are statements that result to a Boolean value.
___13. Relational operator reverses the logic or result of a certain condition.
___14. A program has to be written using a programming language before a computer can
execute it.
___15. A high-level language uses English-like abbreviations in place of binary patterns.
2. Show the registers and its contents provided by the microprocessor of your
computer. Write code and your output on the space provided.
3. Enter a value for BX, CX and DX registers. Write your code and output on the
space provided.
Enter and display your name, course, subject and section starting at memory location 0200.
1. Trace the contents of the AX, BX, CX, and DX registers of the given debug program.
- A 0100
MOV AX,1250
MOV BX,C0A1
MOV CX,0002
ADD BL,CL
SUB BH,AH
MOV DX,BX
INC CX
DEC DX
MUL CX
INSTRUCTION AX BX CX DX
MOV AX,1250
MOV BX,C0A1
MOV CX,0002
ADD BL,CL
SUB BH,AH
MOV DX,BX
INC CX
DEC DX
MUL CX
INT 20
Create a debug program and execute the whole program. Sample Output:
Zach Corpuz
ICT
I.S.U. - Ilagan
1. Create a debug program using LOOP instruction that will display the given output
on the screen.
ZY_WV _TS_QP_NM_KJ_HG_ED_BA_
2. Create a debug program using loop instruction that will display a simple graphic.
https://squareboat.com/blog/different-types-of-software-with-examples
https://www.cseworldonline.com/articles/stages-of-program-development-
process.php
https://hzltenedero.wordpress.com/category/program-development-process/
https://www.geeksforgeeks.org/software-engineering-program-development-life-
cycle-pdlc/
http://whatis.techtarget.com/definition/0,,sid9_gci212134,00.html
https://www.goodfirms.co/glossary/software-tools/
https://www.geeksforgeeks.org/language-processors-assembler-compiler-and-
interpreter/
https://techterms.com/definition/dos#:~:text=Stands%20for%20%22Disk%20Operatin
g%20System,used%20by%20IBM%2Dcompatible%20computers.&text=DOS%2
0uses%20a%20command%20line,the%20user%20to%20type%20commands.
https://www.c3scripts.com/tutorials/msdos/commands.html
https://www.ionos.com/digitalguide/server/know-how/ascii-codes-overview-of-all-
characters-on-the-ascii-table/
http://www.asciitable.com/