SlideShare a Scribd company logo
Ankit Dixit Univ. Roll No. 100420825160
[1]
Program 1.WAP to read and write a string into a file.
#include<iostream.h>
#include<fstream.h>
#include<conio.h>
void main()
{
clrscr();
char college[20],name[20];
cin>>name;
cout<<endl;
cin>>college;
//Writing to a file
ofstreamoutfile ("data.txt");
outfile<<"name -"<<name<<"ncollege-"<<college;
outfile.close();
char a[10],b[10];
cout<<"The data in FILE is "<<endl;
//Reading from a file
ifstreaminfile ("data.txt");
while(infile)
{
infile>>a>>b;
cout<<a<<b;
infile.close();
}
getch();
}
Output :
Ankit Dixit Univ. Roll No. 100420825160
[2]
Program 2.WAP to insert names of the students alphabetically into two different files from
a single read only file using file handling.
#include<iostream.h>
#include<conio.h>
#include<fstream.h>
void main()
{ clrscr();
char n[50];
ifstream a("f1.txt");
ofstream b("f2.txt",ios::app);
ofstream c("f3.txt",ios::app);
while(a.eof()==0)
{
a>>n;
if(n[0]=='a')
{
b<<n<<endl;
}
else
{ c<<n<<endl;
}
a.close();
b.close();
c.close();
cout<<"done";
getch();
} }
Ankit Dixit Univ. Roll No. 100420825160
[3]
Output :
Ankit Dixit Univ. Roll No. 100420825160
[4]
Program 3.WAP to create a file for student (name, roll No. , marks) and also append a
new student record to existing file.
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<fstream.h>
char n[20];
intr,m;
void get()
{ cout<<"Enter name, roll no. and marks :n";
cin>>n>>r>>m; }
void main()
{ clrscr();
char show[50],showup[50];
int c;
ofstream g("a.txt");
cout<<"Enter the total no. of studentsn";
cin>>c;
for(inti=0;i<c;i++)
{get();
g<<n<<setw(5)<<r<<setw(5)<<m<<endl; }
g.close();
ifstream k("a.txt");
while ( k.eof()==0)
{for(int x=0;x<3;x++)
{k>>show;
cout<<show<<setw(5);
Ankit Dixit Univ. Roll No. 100420825160
[5]
}cout<<endl; }
k.close();
cout<<"nNew datan";
g.open("a.txt",ios::app);
{get();
g<<n<<setw(5)<<r<<setw(5)<<m<<endl; }
g.close();
ifstream l("a.txt");
while ( l.eof()==0)
{for(int x=0;x<3;x++)
{l>>showup;
cout<<showup<<setw(5);
}cout<<endl; }
getch();
}
Output :
Ankit Dixit Univ. Roll No. 100420825160
[6]
Program 4.WAP to perform different set operations (union, intersection).
#include<iostream.h>
#include<conio.h>
void main()
{clrscr();
int a[20],b[20],c[40],j,k,m,n,choice;
inti;
cout<<"Enter no. of elements of a : ";
cin>>n;
cout<<"n";
for(i=0;i<n;i++)
{cin>>a[i]; }
cout<<"Enter no. of elements of b : ";
cin>>m;
cout<<"n enter";
for(i=0;i<m;i++)
{cin>>b[i]; }
while(1)
{cout<<"ntt MENU";
cout<<"ntt1.inter";
cout<<"ntt2.union ";
intch;
cout<<"n enter choice";
cin>>ch;
if(ch==2)
{for(i=0;i<n;i++)
Ankit Dixit Univ. Roll No. 100420825160
[7]
{ c[i]=a[i]; }
int k=n;
for(i=0;i<m;i++)
{for(j=0;i<n+1;j++)
{if(c[j]==b[i])
break; }
if (j==n+i)
{c[k]=b[i];
k++; } }
cout<<"n UNION";
for(i=0;i<k;i++)
{cout<<c[i];}}
k=0;
if(ch==1)
{for(i=0;i<n;i++)
{for(j=0;j<m;j++)
{if(a[i]==b[j])
{c[k]=a[i];
k++;
break;
}}}
cout<<"n INTERSECTION";
for(i=0;i<k;i++)
{cout<<c[i];
}}
cout<<"n Want to exit ?(enter 1)";
Ankit Dixit Univ. Roll No. 100420825160
[8]
cin>>choice;
if(choice==1)
break;
}}
Output :
Ankit Dixit Univ. Roll No. 100420825160
[9]
Program 5.WAP to generate lexical & syntax analyzer for a declaration statement.
#include<iostream.h>
#include<conio.h>
#include<fstream.h>
#include<process.h>
#include<stdio.h>
#include<string.h>
voiddisp()
{cout<<"INVALID STATEMENT";
getch();
exit(0);}
void main()
{char s[20],a[20],b[20],c[20];
intsp=0,i=0;
cout<<"Enter the stringn";
gets(s);
while(s[i]!='0')
{if(s[i]==' ')
{sp++;}
i++;}
if (sp!=2)
{disp();}
int x=0,j=0,k=0,l=0;
while(s[x]!=' ')
{a[j]=s[x];
j++;
x++;}
x++;
a[j]='0';
Ankit Dixit Univ. Roll No. 100420825160
[10]
while(s[x]!=' ')
{b[k]=s[x];
k++;
x++;
} x++;
b[k]='0';
while(s[x]!='0')
{c[l]=s[x];
l++;
x++;
}x++;
c[l]='0';
if(strcmp(c,";")!=0)
{disp();}
ifstream g("f11.txt");
char show[50];
while(g.eof()==0)
{g>>show;
if(strcmp(a,show)==0)
{cout<<"Variable "<<b<<" is of "<<a<<" typen";
getch();
exit(0);
}}
g.close();
disp();
getch();
}
Ankit Dixit Univ. Roll No. 100420825160
[11]
Output :When statement is invalid
Output :When statement is valid
Ankit Dixit Univ. Roll No. 100420825160
[12]
6. Study of PASS1 and PASS2 of the assembler
ASSEMBLERS
Assembler is a system program which converts a program written in assembly language into
machine language. Assembly language is special language in which we use special mnemonics
symbols for each instruction. It inputs of an assembly language program known as source
program and converts it into an equivalent machine language program which is our object
program.
General design procedure :-
1. Specify the problem
2. Specify data structure
3. Define format of DS
4. Specify algorithm
5. Look for modularity i.e. capability on one program to be subdivided into several sub
program.
6. Repeat step 1 to 5 until our program is resolved.
There are two passes in assembler.
(1) Pass1
(2) Pass2
PASS1
The purpose of pass 1 is to define symbols and literals. Following are the steps included in
pass 1.
1. Determine length of machine instruction. It is known as MOTGET1.
2. Keep track of location counter.
3. Remember values of symbols until pass2.it is known as STSTO.
4. Process some pseudo ops like EQU, DS. it is known as POTGET1.
5. Remember literals. It is known as LITSTO(literals store)
PASS 2
The purpose of pass 2 is to generate object program. Following are steps included in pass2.
1. Look up values of symbols. It is known as STGET (single table get).
2. Generate instructions. It is known as MOTGET.
3. Generate data for DS (define storage), DC (define constant) and literals.
4. Process of pseudo ops. It is known as POTGET2.
Ankit Dixit Univ. Roll No. 100420825160
[13]
Pass 1 Algorithm’s Flowchart:
Ankit Dixit Univ. Roll No. 100420825160
[14]
Pass 2 :
Ankit Dixit Univ. Roll No. 100420825160
[15]
7. Study of the compiler and its various phases.
Compiler:
Compiler is a system program which converts a program written in HLL into machine language.
The HLL program given as input is known as source program and machine equivalent is known
as object program. The functionality of compiler is divided into some phases as follows:
Phases of Compiler
The compiler has a number of phases plus symbol table manager and an error handler.
Symbol Table
Manager
Input Source
Program
↓
Lexical Analyzer
↓
Syntax Analyzer
↓
Semantic
Analyzer
↓
Intermediate Code
Generator
↓
Code Optimizer
↓
Code Generator
↓
Out Target
Program
Error Handler
Ankit Dixit Univ. Roll No. 100420825160
[16]
Front End vs Back End of a Compilers. The phases of a compiler are collected into front end
and back end.
The front end includes all analysis phases end the intermediate code generator.
The back end includes the code optimization phase and final code generation phase.
The front end analyzes the source program and produces intermediate code while the back end
synthesizes the target program from the intermediate code.
A naive approach (front force) to that front end might run the phases serially.
1. Lexical analyzer takes the source program as an input and produces a long string of
tokens.
2. Syntax Analyzer takes an out of lexical analyzer and produces a large tree.
3. Semantic analyzer takes the output of syntax analyzer and produces another tree.
4. Similarly, intermediate code generator takes a tree as an input produced by semantic
analyzer and produces intermediate code.
Phases of Compiler :
1. Lexical Phase:
Action of parsing source program into proper classes is the task of lexical analyzer.
The program is scanned and separated into basic elements known as tokens. The
basic elements like identifier, literals are placed into tables as other phases
recognize the use and meaning of elements.
2. Syntax Phase
Unlike other aspects of the compiler, the syntax analysis parts are not very
separable, since they are mixed up with calls to all other parts, such as semantic
analysis. The method depends on writing a separate parsing procedure for each kind
of syntactic structure, such as if statement, assignment statement, expression and so
on, and each of these is only responsible for analyzing its own kind of structure. If
any structure contains another structure then the parsing procedure can call the
procedure for this contained structure.
Ankit Dixit Univ. Roll No. 100420825160
[17]
3. Interpretation Phase
Once the program is correct according to syntax, the compiler generates a
intermediate code. The intermediate code may be in the form of parse tree , postfix
notation and three address code.
4. Optimization
Compiler optimization is the process of tuning the output of a compiler to minimize or
maximize some attributes of an executable computer program. The most common
requirement is to minimize the time taken to execute a program; a less common one
is to minimize the amount of memory occupied.Compiler optimization is generally
implemented using a sequence of optimizing transformations, algorithms which take
a program and transform it to produce a semantically equivalent output programs
that uses less resources.
5. Storage Assignment
It is the process of allocating memory to various resources. Memory may be
allocated to various literals, storage, symbols, machine OP etc.
6. Code Generation
It is the last phase of the compiler. This phase receives optimized intermediate code
and generates the code for execution. The target program may be in the form of :
a. assembly language
b. Relocate machine code
c. Absolute machine language
The absolute machine code is the one which is ready to be executed.
Ankit Dixit Univ. Roll No. 100420825160
[18]
8. Study of instruction set of 8085 microprocessor
An instruction is a binary pattern designed inside a microprocessor to perform a specific
function. The entire group of instructions that a microprocessor supports is called Instruction
Set.8085 has 246 instructions. Each instruction is represented by an 8-bit binary value. These
8-bits of binary value are called Op-Codeor Instruction Byte.
Classification of Instruction Set:
• Data Transfer Instruction
• Arithmetic Instructions
• Logical Instructions
• Branching Instructions
• Control Instructions
 Data Transfer Instructions:
These instructions move data between registers, or between memory and registers. These
instructions copy data from source to destination. While copying, the contents of source are not
modified.
Op-code Operand Description
MOV Rd,Rs
M,Rs
Rd,M
Copy from source to destination.
MVI Rd,Data
M,Data
Move immediate 8-bit
LDA 16-bit address Load Accumulator
LXI Reg. pair, 16-bitdata Load register pair immediate
HLD 16-bit address Load H-L registers direct
STA 16-bit address Store accumulator direct
SHLD 16-bit address Store H-L registers direct
XCHG None Exchange H-L with D-E
 Arithmetic Instructions:
These instructions perform the operations like:
•Addition •Subtract •Increment •Decrement
Addition Any 8-bit number, or the contents of register, or thecontents of memory
location can be added to thecontents of accumulator.The result (sum) is stored in the
accumulator.No two other 8-bit registers can be added directly.Example: The contents
of register B cannot be addeddirectly to the contents of register C.
Ankit Dixit Univ. Roll No. 100420825160
[19]
Subtraction Any 8-bit number, or the contents of register, or the contents of memory
location can be subtracted from the contents of accumulator. The result is stored in the
accumulator. Subtraction is performed in 2’s complement form. If the result is negative, it
is stored in 2’s complement form. No two other 8-bit registers can be subtracted directly.
Increment / Decrement The 8-bit contents of a register or a memory locationcan be
incremented or decremented by 1.The 16-bit contents of a register pair can be
incremented or decremented by 1.Increment or decrement can be performed on any
register or a memory location.
Opcode Operand Description
ADD R
M
Add reg. or memory to accumulator
ADC R
M
Add register or memory to accumulator with
carry
ADI 8-bit data Add immediate to accumulator
ACI 8-bit data Add immediate to accumulator with carry
DAD Reg. pair Add register pair to H-L pair
INR R
M
Increment register or memory by 1
INX R Increment register pair by 1
 Logical Instructions
These instructions perform logical operations on data stored in registers, memory and status
flags. The logical operations are:
•AND •OR •XOR • Rotate • Compare • Complement
AND, OR, XOR: Any 8-bit data, or the contents of register, or memory location can logically
have AND operation, OR operation, XOR operation with the contents of accumulator. The result
is stored in accumulator.
Rotate: Each bit in the accumulator can be shifted either left orright to the next position.
Compare: Any 8-bit data or the contents of register, or memory location can be compares for
Equality, Greater Than, less than with the contents of accumulator. The result is reflected in
status flags.
Complement:The contents of accumulator can be complemented. Each 0 is replaced by 1
and each 1 is replaced by 0.
Ankit Dixit Univ. Roll No. 100420825160
[20]
Op-code Operand Description
CMP R
M
Compare register or memory with
accumulator
CPI 8-bit data Compare immediate with accumulator
RAR None Rotate accumulator right through carry
CMA None Complement accumulator
CMC None Complement carry
STC None Set carry
 Branching Instructions
The branching instruction alters the normal sequentialflow. These instructions alter either
unconditionally or conditionally.
JMP The program sequence is transferred to the memory location specified by the 16-
bit address given in the operand. Example: JMP 2034 H.
JxThe program sequence is transferred to the memory location specified by the 16-bit
address given in the operand based on the specified flag of the PSW. Example: JZ
2034 H.
CALL  The program sequence is transferred to the memory location specified by the
16-bit address given in the operand. Before the transfer, the address of the next
instruction after CALL is pushed onto the stack. Example: CALL 2034 H.
Cx The program sequence is transferred to the memory location specified by the 16-
bit address given in the operand based on the specified flag of the PSW. Before the
transfer, the address of the next instruction after the call (the contents of the program
counter) is pushed onto the stack. Example: CZ 2034 H.
RET  The program sequence is transferred from the subroutine to the calling program.
The two bytes from the top of the stack are copied into the program counter, and
program execution begins at the new address. Example: RET.
RST  The RST instruction jumps the control to one of eight memory locations
depending upon the number. These are used as software instructions in a program to
transfer program execution to one of the eight locations. Example: RST 3.
Ankit Dixit Univ. Roll No. 100420825160
[21]
Op-code Operand Description
JMP 16-bit address Jump unconditionally
Jx 16-bit address Jump conditionally
CALL 16-bit address Call unconditionally
Cx 16-bit address Call conditionally
RET None Return unconditionally
RST 0 – 7 Restart (Software Interrupts)
 Control Instructions
The control instructions control the operation of microprocessor.
Opcode Operand Description
NOP None No operation
HLT None Halt
DI None Disable interrupt
EI None Enable interrupt
Ankit Dixit Univ. Roll No. 100420825160
[22]
9. Debugging in C++ environment
Locating and removing errors is known as debugging.
A debugger is a system program which locates bugs and removes them.
Debugging Procedure :
1. Type any program in the given language.
2. Compile it.
3. Look for the errors.
4. Remove errors and recompile the program.
5. Repeat steps 3 & 4 until our program becomes error free.
Case Study:
We can divide the debugging procedure in C++ in two categories:
1. Single-step Control Debugging
2. Break point Control Debugging
Single-step Control Debugging : There are three main methods of debugging under this
category:
a) Single line Control
b) Watch window
c) Procedure control
a) Single line Control:
After compilation if there are errors in our program then by pressing F7 we check our
program in single line control. Where there is any error or bug in any line then that
particular line is skipped and the control is transferred to next adjacent line.
b) Watch window:
After pressing F7 , if we press Ctrl+F7 then a watch window will be displayed on the
screen. The user has to type the variable in the add watch window and value of that
variable will be displayed.
Ankit Dixit Univ. Roll No. 100420825160
[23]
c) Procedure control
This technique is used if our program is very large and it is divided into several sub-
procedures. Simply pressing F8 will result our program to be compiled on procedure
basis.
 Break point Control Debugging
As the name implies , it allows the user to set break=points in the program, in order to check the
contents of the registers, memories and other programming entities like variables etc. it allows
the user to halt the execution of the program at that break-point. Then the user can examine
intermediate results or contents. The break=point can be inserted at any particular position in
our program by the user himself.
Ankit Dixit Univ. Roll No. 100420825160
[24]
10.Study of editors and its types :
Editor: An editor is a program which creates or edits the documents. it is basically a program
that provides a user to create and edit the target document. The document include the objects
such as: computer programs, text, equations, tables, diagrams, paragraphs etc. that so anything
that one might find on a printed page.
# GENERAL EDITING PROCEDURE:
1. Select a part of target document to be viewed and manipulated.
2. Examine how to format this view and how to display it.
3. Specify and execute the operations that modify the target document.
4. Update the view as per requirement.
# BASIC FUNCTIONS PERFORMED BY AN EDITOR: travelling, editing, formatting, viewing,
filtering, display
Travelling: movement of editing context to new position within the text is called as
travelling. This process can be done by user itself explicitly.
Editing: All the operations like copy, select, allocation, paste ,replace etc. comes under
editing,
Formatting: Specify&execute operations the modify the documents comes under this.
Viewing: It compiles formatting. The text in a manner desired by the user. This is an
abstract view independent of physical features of i/o devices.
Filtering: Determining how to format this,view and how to display it.
Display: This maps the viewing data into physical features of display device. The main
function of display is to determine how data looks like on the computer screen.
# TYPES OF AN EDITOR :
Text editor:A text editor is a small program that has never been developed mainly for writing
and editing plain text. It is a computer program that lets a user enter,change, store, print text.
Typically a text editor provides an empty screen with a fixed length and visible line number.
Ankit Dixit Univ. Roll No. 100420825160
[25]
A special line allows you to move to a new page,scroll forward and backward,make global
changes in the document,save the document and perform other actions. Text editor can be
used to enter a language source statement or to create documents such as technical manuals.
Features of a text editor:
#find, search and replace
# cut copy paste
# text formatting
#undo and redo
# import and export
# filtering
# open and close files in text modes
#edit and merge files
#recover the lost files
Example: of the text editor are: GUI based(notepad and MAC) and command based (UNIX and
DOS window)
Following are the further types of the text editor:--
line editor,full screen editor,multiwindow editor,source code editor
Description of these editors are as follows:
 Line editor: it provide the user to edit only one line of a file at a time. Text editor is line
oriented. These editors are restricted to the text oriented i/o method.In this, simultaneous
typing, editing and document display is not allowed. Programmers may modify the text
by entering commands on a text terminal (shell) e.g.UNIX,edlin
 Full screen editor:it is used to edit the files and scripts in the full screen mode. Some
full screen editors are available which provides the user to navigate in different modes of
the editor.It provides maximum power to the programmer in editing and creating the text
Ankit Dixit Univ. Roll No. 100420825160
[26]
files.They provide freedom to user in using most of the features like cut,copy,paste.e.g.
notepad, MS word.
 Multi-Window editor:This editor provides a user to open different windows and
workspaces at a time.Using such editors,a programmer can open and compare the
different text files at same time.e.g. MS word,web browsers.
 Source code editor: it is also known as structure editor.These are the text editors with
editing features to create and update the source code of software program. These
provide features like syntax highlighting,macros,coding tools.Generally programming
language editors like PHP editor and various html editors comes under this category.
Case Study: Vi Editors
This is the Original Unix Default Editor for e-mail and news articles
Vi is a modal editor; that is, when using vi, you are in an edit mode, or in a command mode.
When in the command mode, all keystrokes are interpreted as commands. When in the edit
mode, these same keystrokes are interpreted as characters to enter into the text. On mutant, vi
provides no visual clue as to which mode you are in. In order to ensure that you are in the
command mode, press the <M> key. If you are in doubt as to which mode you are in, press the
<M> key a couple of times. This will ensure that you are in the command mode, and then you
can go to the edit mode if you wish.
Vi Command Mode Commands:
Cursor Movement:
h Cursor left
j Cursor down
k Cursor up
l Cursor right
0 Cursor to beginning of line
$ Cursor to end of line
w Cursor to next word
e Cursor to end of current word
b Cursor to beginning of current word
H Cursor to top of screen
M Cursor to middle of screen
L Cursor to last line on screen
^F Scroll forward 1 screen
^D Scroll down 1/2 screen
Ankit Dixit Univ. Roll No. 100420825160
[27]
^U Scroll up 1/2 screen
^B Scroll back 1 screen
:0 Move cursor to top of file
:$ Move cursor to last line of file
Deletion Commands
x Delete character under cursor
dw Delete word under cursor
dd Delete current line
D Delete from cursor position to end of line
Editing Commands
a Append text after cursor
A Append at end of line
i Insert text at current cursor position
I Insert at beginning of line
r Replace character under cursor
o Open a new line above current line and enter edit mode
While editing, the backspace key works as a destructive backspace (delete). Backspacing over
characters automatically deletes them, and they must be retyped.
Exiting from Vi
The Viwrite commands, listed below, always write over the file if it already existed. They do not
make any backups.
:wq Write file (save), then quit
ZZ Write file (save), then quit :x Write file (save), then quit
:q! Quit without saving
Saving your File
:w Write/save current file
Ankit Dixit Univ. Roll No. 100420825160
[28]
Getting a new file
:n filename Read in the file called filename
Extra Commands
ncommand A number n followed by a command will repeat the command n times. For example
9dd will delete the current line and the 8 subsequent lines.

More Related Content

What's hot (20)

PPTX
Ambiguous & Unambiguous Grammar
MdImamHasan1
 
PPTX
Datatype in c++ unit 3 -topic 2
MOHIT TOMAR
 
PDF
Lecture 01 introduction to compiler
Iffat Anjum
 
PPTX
Regular expressions in Python
Sujith Kumar
 
PPTX
Union in C programming
Kamal Acharya
 
PDF
OS - Process Concepts
Mukesh Chinta
 
PPT
C program
AJAL A J
 
PPT
Operators in C++
Sachin Sharma
 
PPTX
Unit 9. Structure and Unions
Ashim Lamichhane
 
PPTX
Variables in python
Jaya Kumari
 
PPTX
Conditional and control statement
narmadhakin
 
PPTX
Arrays in c
Jeeva Nanthini
 
PPTX
Data types in C
Ansh Kashyap
 
PPTX
Syntax-Directed Translation into Three Address Code
sanchi29
 
PPTX
Keywords in c language
Joydeep16
 
PPTX
Array Of Pointers
Sharad Dubey
 
PPTX
CONDITIONAL STATEMENT IN C LANGUAGE
Ideal Eyes Business College
 
PDF
3b. LMD & RMD.pdf
TANZINTANZINA
 
PPTX
Dag representation of basic blocks
Jothi Lakshmi
 
PPTX
Basic of compiler
Abhishek Singh
 
Ambiguous & Unambiguous Grammar
MdImamHasan1
 
Datatype in c++ unit 3 -topic 2
MOHIT TOMAR
 
Lecture 01 introduction to compiler
Iffat Anjum
 
Regular expressions in Python
Sujith Kumar
 
Union in C programming
Kamal Acharya
 
OS - Process Concepts
Mukesh Chinta
 
C program
AJAL A J
 
Operators in C++
Sachin Sharma
 
Unit 9. Structure and Unions
Ashim Lamichhane
 
Variables in python
Jaya Kumari
 
Conditional and control statement
narmadhakin
 
Arrays in c
Jeeva Nanthini
 
Data types in C
Ansh Kashyap
 
Syntax-Directed Translation into Three Address Code
sanchi29
 
Keywords in c language
Joydeep16
 
Array Of Pointers
Sharad Dubey
 
CONDITIONAL STATEMENT IN C LANGUAGE
Ideal Eyes Business College
 
3b. LMD & RMD.pdf
TANZINTANZINA
 
Dag representation of basic blocks
Jothi Lakshmi
 
Basic of compiler
Abhishek Singh
 

Similar to System programmin practical file (20)

PPTX
Lecture 1 introduction to language processors
Rebaz Najeeb
 
PPT
Cpcs302 1
guest5de1a5
 
PPT
Comp102 lec 1
Fraz Bakhsh
 
PPT
A-overview.pptbb cpp introduction how cpp
compengwaelalahmar
 
DOCX
Compiler Design Material
Dr. C.V. Suresh Babu
 
DOCX
Dineshmaterial1 091225091539-phpapp02
Tirumala Rao
 
PDF
Phases of the Compiler - Systems Programming
Mukesh Tekwani
 
PDF
Unit1 cd
PRIST University
 
PPTX
The Phases of a Compiler
Radhika Talaviya
 
PDF
Compiler design Introduction
Aman Sharma
 
PPTX
Compilers
Bense Tony
 
PDF
Phases of compiler
ahsaniftikhar19
 
PPT
Introduction to compiler
Abha Damani
 
PPTX
1 cc
Jay Soni
 
PPTX
Phases of Compiler
Tanzeela_Hussain
 
PDF
Chapter#01 cc
abdulbaki3
 
PDF
Compiler_Lecture1.pdf
AkarTaher
 
PPTX
Compiler
Achyuth Dorasala
 
PPT
phases of a compiler
Ms.SHANTHI.S CSE
 
PDF
3_1_COMPILER_DESIGNGARGREREGREGREGREGREGRGRERE
solomonraju17
 
Lecture 1 introduction to language processors
Rebaz Najeeb
 
Cpcs302 1
guest5de1a5
 
Comp102 lec 1
Fraz Bakhsh
 
A-overview.pptbb cpp introduction how cpp
compengwaelalahmar
 
Compiler Design Material
Dr. C.V. Suresh Babu
 
Dineshmaterial1 091225091539-phpapp02
Tirumala Rao
 
Phases of the Compiler - Systems Programming
Mukesh Tekwani
 
The Phases of a Compiler
Radhika Talaviya
 
Compiler design Introduction
Aman Sharma
 
Compilers
Bense Tony
 
Phases of compiler
ahsaniftikhar19
 
Introduction to compiler
Abha Damani
 
1 cc
Jay Soni
 
Phases of Compiler
Tanzeela_Hussain
 
Chapter#01 cc
abdulbaki3
 
Compiler_Lecture1.pdf
AkarTaher
 
phases of a compiler
Ms.SHANTHI.S CSE
 
3_1_COMPILER_DESIGNGARGREREGREGREGREGREGRGRERE
solomonraju17
 
Ad

Recently uploaded (20)

PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
Ad

System programmin practical file

  • 1. Ankit Dixit Univ. Roll No. 100420825160 [1] Program 1.WAP to read and write a string into a file. #include<iostream.h> #include<fstream.h> #include<conio.h> void main() { clrscr(); char college[20],name[20]; cin>>name; cout<<endl; cin>>college; //Writing to a file ofstreamoutfile ("data.txt"); outfile<<"name -"<<name<<"ncollege-"<<college; outfile.close(); char a[10],b[10]; cout<<"The data in FILE is "<<endl; //Reading from a file ifstreaminfile ("data.txt"); while(infile) { infile>>a>>b; cout<<a<<b; infile.close(); } getch(); } Output :
  • 2. Ankit Dixit Univ. Roll No. 100420825160 [2] Program 2.WAP to insert names of the students alphabetically into two different files from a single read only file using file handling. #include<iostream.h> #include<conio.h> #include<fstream.h> void main() { clrscr(); char n[50]; ifstream a("f1.txt"); ofstream b("f2.txt",ios::app); ofstream c("f3.txt",ios::app); while(a.eof()==0) { a>>n; if(n[0]=='a') { b<<n<<endl; } else { c<<n<<endl; } a.close(); b.close(); c.close(); cout<<"done"; getch(); } }
  • 3. Ankit Dixit Univ. Roll No. 100420825160 [3] Output :
  • 4. Ankit Dixit Univ. Roll No. 100420825160 [4] Program 3.WAP to create a file for student (name, roll No. , marks) and also append a new student record to existing file. #include<iostream.h> #include<conio.h> #include<iomanip.h> #include<fstream.h> char n[20]; intr,m; void get() { cout<<"Enter name, roll no. and marks :n"; cin>>n>>r>>m; } void main() { clrscr(); char show[50],showup[50]; int c; ofstream g("a.txt"); cout<<"Enter the total no. of studentsn"; cin>>c; for(inti=0;i<c;i++) {get(); g<<n<<setw(5)<<r<<setw(5)<<m<<endl; } g.close(); ifstream k("a.txt"); while ( k.eof()==0) {for(int x=0;x<3;x++) {k>>show; cout<<show<<setw(5);
  • 5. Ankit Dixit Univ. Roll No. 100420825160 [5] }cout<<endl; } k.close(); cout<<"nNew datan"; g.open("a.txt",ios::app); {get(); g<<n<<setw(5)<<r<<setw(5)<<m<<endl; } g.close(); ifstream l("a.txt"); while ( l.eof()==0) {for(int x=0;x<3;x++) {l>>showup; cout<<showup<<setw(5); }cout<<endl; } getch(); } Output :
  • 6. Ankit Dixit Univ. Roll No. 100420825160 [6] Program 4.WAP to perform different set operations (union, intersection). #include<iostream.h> #include<conio.h> void main() {clrscr(); int a[20],b[20],c[40],j,k,m,n,choice; inti; cout<<"Enter no. of elements of a : "; cin>>n; cout<<"n"; for(i=0;i<n;i++) {cin>>a[i]; } cout<<"Enter no. of elements of b : "; cin>>m; cout<<"n enter"; for(i=0;i<m;i++) {cin>>b[i]; } while(1) {cout<<"ntt MENU"; cout<<"ntt1.inter"; cout<<"ntt2.union "; intch; cout<<"n enter choice"; cin>>ch; if(ch==2) {for(i=0;i<n;i++)
  • 7. Ankit Dixit Univ. Roll No. 100420825160 [7] { c[i]=a[i]; } int k=n; for(i=0;i<m;i++) {for(j=0;i<n+1;j++) {if(c[j]==b[i]) break; } if (j==n+i) {c[k]=b[i]; k++; } } cout<<"n UNION"; for(i=0;i<k;i++) {cout<<c[i];}} k=0; if(ch==1) {for(i=0;i<n;i++) {for(j=0;j<m;j++) {if(a[i]==b[j]) {c[k]=a[i]; k++; break; }}} cout<<"n INTERSECTION"; for(i=0;i<k;i++) {cout<<c[i]; }} cout<<"n Want to exit ?(enter 1)";
  • 8. Ankit Dixit Univ. Roll No. 100420825160 [8] cin>>choice; if(choice==1) break; }} Output :
  • 9. Ankit Dixit Univ. Roll No. 100420825160 [9] Program 5.WAP to generate lexical & syntax analyzer for a declaration statement. #include<iostream.h> #include<conio.h> #include<fstream.h> #include<process.h> #include<stdio.h> #include<string.h> voiddisp() {cout<<"INVALID STATEMENT"; getch(); exit(0);} void main() {char s[20],a[20],b[20],c[20]; intsp=0,i=0; cout<<"Enter the stringn"; gets(s); while(s[i]!='0') {if(s[i]==' ') {sp++;} i++;} if (sp!=2) {disp();} int x=0,j=0,k=0,l=0; while(s[x]!=' ') {a[j]=s[x]; j++; x++;} x++; a[j]='0';
  • 10. Ankit Dixit Univ. Roll No. 100420825160 [10] while(s[x]!=' ') {b[k]=s[x]; k++; x++; } x++; b[k]='0'; while(s[x]!='0') {c[l]=s[x]; l++; x++; }x++; c[l]='0'; if(strcmp(c,";")!=0) {disp();} ifstream g("f11.txt"); char show[50]; while(g.eof()==0) {g>>show; if(strcmp(a,show)==0) {cout<<"Variable "<<b<<" is of "<<a<<" typen"; getch(); exit(0); }} g.close(); disp(); getch(); }
  • 11. Ankit Dixit Univ. Roll No. 100420825160 [11] Output :When statement is invalid Output :When statement is valid
  • 12. Ankit Dixit Univ. Roll No. 100420825160 [12] 6. Study of PASS1 and PASS2 of the assembler ASSEMBLERS Assembler is a system program which converts a program written in assembly language into machine language. Assembly language is special language in which we use special mnemonics symbols for each instruction. It inputs of an assembly language program known as source program and converts it into an equivalent machine language program which is our object program. General design procedure :- 1. Specify the problem 2. Specify data structure 3. Define format of DS 4. Specify algorithm 5. Look for modularity i.e. capability on one program to be subdivided into several sub program. 6. Repeat step 1 to 5 until our program is resolved. There are two passes in assembler. (1) Pass1 (2) Pass2 PASS1 The purpose of pass 1 is to define symbols and literals. Following are the steps included in pass 1. 1. Determine length of machine instruction. It is known as MOTGET1. 2. Keep track of location counter. 3. Remember values of symbols until pass2.it is known as STSTO. 4. Process some pseudo ops like EQU, DS. it is known as POTGET1. 5. Remember literals. It is known as LITSTO(literals store) PASS 2 The purpose of pass 2 is to generate object program. Following are steps included in pass2. 1. Look up values of symbols. It is known as STGET (single table get). 2. Generate instructions. It is known as MOTGET. 3. Generate data for DS (define storage), DC (define constant) and literals. 4. Process of pseudo ops. It is known as POTGET2.
  • 13. Ankit Dixit Univ. Roll No. 100420825160 [13] Pass 1 Algorithm’s Flowchart:
  • 14. Ankit Dixit Univ. Roll No. 100420825160 [14] Pass 2 :
  • 15. Ankit Dixit Univ. Roll No. 100420825160 [15] 7. Study of the compiler and its various phases. Compiler: Compiler is a system program which converts a program written in HLL into machine language. The HLL program given as input is known as source program and machine equivalent is known as object program. The functionality of compiler is divided into some phases as follows: Phases of Compiler The compiler has a number of phases plus symbol table manager and an error handler. Symbol Table Manager Input Source Program ↓ Lexical Analyzer ↓ Syntax Analyzer ↓ Semantic Analyzer ↓ Intermediate Code Generator ↓ Code Optimizer ↓ Code Generator ↓ Out Target Program Error Handler
  • 16. Ankit Dixit Univ. Roll No. 100420825160 [16] Front End vs Back End of a Compilers. The phases of a compiler are collected into front end and back end. The front end includes all analysis phases end the intermediate code generator. The back end includes the code optimization phase and final code generation phase. The front end analyzes the source program and produces intermediate code while the back end synthesizes the target program from the intermediate code. A naive approach (front force) to that front end might run the phases serially. 1. Lexical analyzer takes the source program as an input and produces a long string of tokens. 2. Syntax Analyzer takes an out of lexical analyzer and produces a large tree. 3. Semantic analyzer takes the output of syntax analyzer and produces another tree. 4. Similarly, intermediate code generator takes a tree as an input produced by semantic analyzer and produces intermediate code. Phases of Compiler : 1. Lexical Phase: Action of parsing source program into proper classes is the task of lexical analyzer. The program is scanned and separated into basic elements known as tokens. The basic elements like identifier, literals are placed into tables as other phases recognize the use and meaning of elements. 2. Syntax Phase Unlike other aspects of the compiler, the syntax analysis parts are not very separable, since they are mixed up with calls to all other parts, such as semantic analysis. The method depends on writing a separate parsing procedure for each kind of syntactic structure, such as if statement, assignment statement, expression and so on, and each of these is only responsible for analyzing its own kind of structure. If any structure contains another structure then the parsing procedure can call the procedure for this contained structure.
  • 17. Ankit Dixit Univ. Roll No. 100420825160 [17] 3. Interpretation Phase Once the program is correct according to syntax, the compiler generates a intermediate code. The intermediate code may be in the form of parse tree , postfix notation and three address code. 4. Optimization Compiler optimization is the process of tuning the output of a compiler to minimize or maximize some attributes of an executable computer program. The most common requirement is to minimize the time taken to execute a program; a less common one is to minimize the amount of memory occupied.Compiler optimization is generally implemented using a sequence of optimizing transformations, algorithms which take a program and transform it to produce a semantically equivalent output programs that uses less resources. 5. Storage Assignment It is the process of allocating memory to various resources. Memory may be allocated to various literals, storage, symbols, machine OP etc. 6. Code Generation It is the last phase of the compiler. This phase receives optimized intermediate code and generates the code for execution. The target program may be in the form of : a. assembly language b. Relocate machine code c. Absolute machine language The absolute machine code is the one which is ready to be executed.
  • 18. Ankit Dixit Univ. Roll No. 100420825160 [18] 8. Study of instruction set of 8085 microprocessor An instruction is a binary pattern designed inside a microprocessor to perform a specific function. The entire group of instructions that a microprocessor supports is called Instruction Set.8085 has 246 instructions. Each instruction is represented by an 8-bit binary value. These 8-bits of binary value are called Op-Codeor Instruction Byte. Classification of Instruction Set: • Data Transfer Instruction • Arithmetic Instructions • Logical Instructions • Branching Instructions • Control Instructions  Data Transfer Instructions: These instructions move data between registers, or between memory and registers. These instructions copy data from source to destination. While copying, the contents of source are not modified. Op-code Operand Description MOV Rd,Rs M,Rs Rd,M Copy from source to destination. MVI Rd,Data M,Data Move immediate 8-bit LDA 16-bit address Load Accumulator LXI Reg. pair, 16-bitdata Load register pair immediate HLD 16-bit address Load H-L registers direct STA 16-bit address Store accumulator direct SHLD 16-bit address Store H-L registers direct XCHG None Exchange H-L with D-E  Arithmetic Instructions: These instructions perform the operations like: •Addition •Subtract •Increment •Decrement Addition Any 8-bit number, or the contents of register, or thecontents of memory location can be added to thecontents of accumulator.The result (sum) is stored in the accumulator.No two other 8-bit registers can be added directly.Example: The contents of register B cannot be addeddirectly to the contents of register C.
  • 19. Ankit Dixit Univ. Roll No. 100420825160 [19] Subtraction Any 8-bit number, or the contents of register, or the contents of memory location can be subtracted from the contents of accumulator. The result is stored in the accumulator. Subtraction is performed in 2’s complement form. If the result is negative, it is stored in 2’s complement form. No two other 8-bit registers can be subtracted directly. Increment / Decrement The 8-bit contents of a register or a memory locationcan be incremented or decremented by 1.The 16-bit contents of a register pair can be incremented or decremented by 1.Increment or decrement can be performed on any register or a memory location. Opcode Operand Description ADD R M Add reg. or memory to accumulator ADC R M Add register or memory to accumulator with carry ADI 8-bit data Add immediate to accumulator ACI 8-bit data Add immediate to accumulator with carry DAD Reg. pair Add register pair to H-L pair INR R M Increment register or memory by 1 INX R Increment register pair by 1  Logical Instructions These instructions perform logical operations on data stored in registers, memory and status flags. The logical operations are: •AND •OR •XOR • Rotate • Compare • Complement AND, OR, XOR: Any 8-bit data, or the contents of register, or memory location can logically have AND operation, OR operation, XOR operation with the contents of accumulator. The result is stored in accumulator. Rotate: Each bit in the accumulator can be shifted either left orright to the next position. Compare: Any 8-bit data or the contents of register, or memory location can be compares for Equality, Greater Than, less than with the contents of accumulator. The result is reflected in status flags. Complement:The contents of accumulator can be complemented. Each 0 is replaced by 1 and each 1 is replaced by 0.
  • 20. Ankit Dixit Univ. Roll No. 100420825160 [20] Op-code Operand Description CMP R M Compare register or memory with accumulator CPI 8-bit data Compare immediate with accumulator RAR None Rotate accumulator right through carry CMA None Complement accumulator CMC None Complement carry STC None Set carry  Branching Instructions The branching instruction alters the normal sequentialflow. These instructions alter either unconditionally or conditionally. JMP The program sequence is transferred to the memory location specified by the 16- bit address given in the operand. Example: JMP 2034 H. JxThe program sequence is transferred to the memory location specified by the 16-bit address given in the operand based on the specified flag of the PSW. Example: JZ 2034 H. CALL  The program sequence is transferred to the memory location specified by the 16-bit address given in the operand. Before the transfer, the address of the next instruction after CALL is pushed onto the stack. Example: CALL 2034 H. Cx The program sequence is transferred to the memory location specified by the 16- bit address given in the operand based on the specified flag of the PSW. Before the transfer, the address of the next instruction after the call (the contents of the program counter) is pushed onto the stack. Example: CZ 2034 H. RET  The program sequence is transferred from the subroutine to the calling program. The two bytes from the top of the stack are copied into the program counter, and program execution begins at the new address. Example: RET. RST  The RST instruction jumps the control to one of eight memory locations depending upon the number. These are used as software instructions in a program to transfer program execution to one of the eight locations. Example: RST 3.
  • 21. Ankit Dixit Univ. Roll No. 100420825160 [21] Op-code Operand Description JMP 16-bit address Jump unconditionally Jx 16-bit address Jump conditionally CALL 16-bit address Call unconditionally Cx 16-bit address Call conditionally RET None Return unconditionally RST 0 – 7 Restart (Software Interrupts)  Control Instructions The control instructions control the operation of microprocessor. Opcode Operand Description NOP None No operation HLT None Halt DI None Disable interrupt EI None Enable interrupt
  • 22. Ankit Dixit Univ. Roll No. 100420825160 [22] 9. Debugging in C++ environment Locating and removing errors is known as debugging. A debugger is a system program which locates bugs and removes them. Debugging Procedure : 1. Type any program in the given language. 2. Compile it. 3. Look for the errors. 4. Remove errors and recompile the program. 5. Repeat steps 3 & 4 until our program becomes error free. Case Study: We can divide the debugging procedure in C++ in two categories: 1. Single-step Control Debugging 2. Break point Control Debugging Single-step Control Debugging : There are three main methods of debugging under this category: a) Single line Control b) Watch window c) Procedure control a) Single line Control: After compilation if there are errors in our program then by pressing F7 we check our program in single line control. Where there is any error or bug in any line then that particular line is skipped and the control is transferred to next adjacent line. b) Watch window: After pressing F7 , if we press Ctrl+F7 then a watch window will be displayed on the screen. The user has to type the variable in the add watch window and value of that variable will be displayed.
  • 23. Ankit Dixit Univ. Roll No. 100420825160 [23] c) Procedure control This technique is used if our program is very large and it is divided into several sub- procedures. Simply pressing F8 will result our program to be compiled on procedure basis.  Break point Control Debugging As the name implies , it allows the user to set break=points in the program, in order to check the contents of the registers, memories and other programming entities like variables etc. it allows the user to halt the execution of the program at that break-point. Then the user can examine intermediate results or contents. The break=point can be inserted at any particular position in our program by the user himself.
  • 24. Ankit Dixit Univ. Roll No. 100420825160 [24] 10.Study of editors and its types : Editor: An editor is a program which creates or edits the documents. it is basically a program that provides a user to create and edit the target document. The document include the objects such as: computer programs, text, equations, tables, diagrams, paragraphs etc. that so anything that one might find on a printed page. # GENERAL EDITING PROCEDURE: 1. Select a part of target document to be viewed and manipulated. 2. Examine how to format this view and how to display it. 3. Specify and execute the operations that modify the target document. 4. Update the view as per requirement. # BASIC FUNCTIONS PERFORMED BY AN EDITOR: travelling, editing, formatting, viewing, filtering, display Travelling: movement of editing context to new position within the text is called as travelling. This process can be done by user itself explicitly. Editing: All the operations like copy, select, allocation, paste ,replace etc. comes under editing, Formatting: Specify&execute operations the modify the documents comes under this. Viewing: It compiles formatting. The text in a manner desired by the user. This is an abstract view independent of physical features of i/o devices. Filtering: Determining how to format this,view and how to display it. Display: This maps the viewing data into physical features of display device. The main function of display is to determine how data looks like on the computer screen. # TYPES OF AN EDITOR : Text editor:A text editor is a small program that has never been developed mainly for writing and editing plain text. It is a computer program that lets a user enter,change, store, print text. Typically a text editor provides an empty screen with a fixed length and visible line number.
  • 25. Ankit Dixit Univ. Roll No. 100420825160 [25] A special line allows you to move to a new page,scroll forward and backward,make global changes in the document,save the document and perform other actions. Text editor can be used to enter a language source statement or to create documents such as technical manuals. Features of a text editor: #find, search and replace # cut copy paste # text formatting #undo and redo # import and export # filtering # open and close files in text modes #edit and merge files #recover the lost files Example: of the text editor are: GUI based(notepad and MAC) and command based (UNIX and DOS window) Following are the further types of the text editor:-- line editor,full screen editor,multiwindow editor,source code editor Description of these editors are as follows:  Line editor: it provide the user to edit only one line of a file at a time. Text editor is line oriented. These editors are restricted to the text oriented i/o method.In this, simultaneous typing, editing and document display is not allowed. Programmers may modify the text by entering commands on a text terminal (shell) e.g.UNIX,edlin  Full screen editor:it is used to edit the files and scripts in the full screen mode. Some full screen editors are available which provides the user to navigate in different modes of the editor.It provides maximum power to the programmer in editing and creating the text
  • 26. Ankit Dixit Univ. Roll No. 100420825160 [26] files.They provide freedom to user in using most of the features like cut,copy,paste.e.g. notepad, MS word.  Multi-Window editor:This editor provides a user to open different windows and workspaces at a time.Using such editors,a programmer can open and compare the different text files at same time.e.g. MS word,web browsers.  Source code editor: it is also known as structure editor.These are the text editors with editing features to create and update the source code of software program. These provide features like syntax highlighting,macros,coding tools.Generally programming language editors like PHP editor and various html editors comes under this category. Case Study: Vi Editors This is the Original Unix Default Editor for e-mail and news articles Vi is a modal editor; that is, when using vi, you are in an edit mode, or in a command mode. When in the command mode, all keystrokes are interpreted as commands. When in the edit mode, these same keystrokes are interpreted as characters to enter into the text. On mutant, vi provides no visual clue as to which mode you are in. In order to ensure that you are in the command mode, press the <M> key. If you are in doubt as to which mode you are in, press the <M> key a couple of times. This will ensure that you are in the command mode, and then you can go to the edit mode if you wish. Vi Command Mode Commands: Cursor Movement: h Cursor left j Cursor down k Cursor up l Cursor right 0 Cursor to beginning of line $ Cursor to end of line w Cursor to next word e Cursor to end of current word b Cursor to beginning of current word H Cursor to top of screen M Cursor to middle of screen L Cursor to last line on screen ^F Scroll forward 1 screen ^D Scroll down 1/2 screen
  • 27. Ankit Dixit Univ. Roll No. 100420825160 [27] ^U Scroll up 1/2 screen ^B Scroll back 1 screen :0 Move cursor to top of file :$ Move cursor to last line of file Deletion Commands x Delete character under cursor dw Delete word under cursor dd Delete current line D Delete from cursor position to end of line Editing Commands a Append text after cursor A Append at end of line i Insert text at current cursor position I Insert at beginning of line r Replace character under cursor o Open a new line above current line and enter edit mode While editing, the backspace key works as a destructive backspace (delete). Backspacing over characters automatically deletes them, and they must be retyped. Exiting from Vi The Viwrite commands, listed below, always write over the file if it already existed. They do not make any backups. :wq Write file (save), then quit ZZ Write file (save), then quit :x Write file (save), then quit :q! Quit without saving Saving your File :w Write/save current file
  • 28. Ankit Dixit Univ. Roll No. 100420825160 [28] Getting a new file :n filename Read in the file called filename Extra Commands ncommand A number n followed by a command will repeat the command n times. For example 9dd will delete the current line and the 8 subsequent lines.