Ex. No.:
12
|
THREE
ADDRESS CODE GENERATION
|
AIM :
To write a
C program to generate a three address code for a given expression.
ALGORITHM:
Step1: Begin the program
Step2 : The expression is read from
the file using a file pointer
Step3 : Each string is read and the
total no. of strings in the file is calculated.
Step4: Each string is compared with
an operator; if any operator is seen then the previous string and next string
are concatenated and stored in a first temporary value and the three address
code expression is printed
Step5 : Suppose if another operand
is seen then the first temporary value is concatenated to the next string using
the operator and the expression is printed.
Step6 : The final temporary value
is replaced to the left operand value.
Step7 : End the program.
PROGRAM: //program for three address code
generation
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
struct
three
{
char data[10],temp[7];
}s[30];
void main()
{
char d1[7],d2[7]="t";
int i=0,j=1,len=0;
FILE *f1,*f2;
clrscr();
f1=fopen("sum.txt","r");
f2=fopen("out.txt","w");
while(fscanf(f1,"%s",s[len].data)!=EOF)
len++;
itoa(j,d1,7);
strcat(d2,d1);
strcpy(s[j].temp,d2);
strcpy(d1,"");
strcpy(d2,"t");
if(!strcmp(s[3].data,"+"))
{
fprintf(f2,"%s=%s+%s",s[j].temp,s[i+2].data,s[i+4].data);
j++;
}
else
if(!strcmp(s[3].data,"-"))
{
fprintf(f2,"%s=%s-%s",s[j].temp,s[i+2].data,s[i+4].data);
j++;
}
for(i=4;i<len-2;i+=2)
{
itoa(j,d1,7);
strcat(d2,d1);
strcpy(s[j].temp,d2);
if(!strcmp(s[i+1].data,"+"))
fprintf(f2,"\n%s=%s+%s",s[j].temp,s[j-1].temp,s[i+2].data);
else
if(!strcmp(s[i+1].data,"-"))
fprintf(f2,"\n%s=%s-%s",s[j].temp,s[j-1].temp,s[i+2].data);
strcpy(d1,"");
strcpy(d2,"t");
j++;
}
fprintf(f2,"\n%s=%s",s[0].data,s[j-1].temp);
fclose(f1);
fclose(f2);
getch();
}
Input: sum.txt
out = in1 + in2 + in3 - in4
Output :
out.txt
t1=in1+in2
t2=t1+in3
t3=t2-in4
out=t3
RESULT:
Thus a C
program to generate a three address code for a given expression is written,
executed and the output is verified.
Ex. No.:
13
|
GENERATION OF ASSEMBLY LANGUAGE
INSTRUCTION FROM THREE ADDRESS CODE
|
AIM :
To write a
C program to generate an assembly language instruction from three address code.
ALGORITHM:
Step1 : Begin the program
Step2 : The file containing the three address code is given
as input to this program
Step3 : Each string is read from the file
Step4 : In an expression the string the left of the operator
is printed with the ‘LDA’ string.
Step5 : Next if the operator is ‘+’ then ‘ADO ’ is printed else ‘SUB’ is printed
followed by the string to the right of
the operator.
Step6 : Then ‘STA’ string is printed followed by the string
value left of the ‘=’ operator
Step7 : .End of the program
PROGRAM: //GENERATION
OF ASSEMBLY LANGUAGE INSTRUCTION FROM THREE ADDRESS CODE
#include<stdio.h>
#include<conio.h>
#include<string.h>
struct
three
{
char
data[10],temp[7];
}s[30];
void
main()
{
char *d1,*d2;
int i=0,len=0;
FILE *f1,*f2;
clrscr();
f1=fopen("exe1.txt","r");
f2=fopen("exe2.txt","w");
while(fscanf(f1,"%s",s[len].data)!=EOF)
len++;
for(i=0;i<=len;i++)
{
if(!strcmp(s[i].data,"="))
{
fprintf(f2,"\nLDA\t%s",s[i+1].data);
if(!strcmp(s[i+2].data,"+"))
fprintf(f2,"\nADD\t%s",s[i+3].data);
if(!strcmp(s[i+2].data,"-"))
fprintf(f2,"\nSUB\t%s",s[i+3].data);
fprintf(f2,"\nSTA\t%s",s[i-1].data);
}
}
fclose(f1);
fclose(f2);
getch();
}
Input: exe1.txt
t1 = in1 + in2
t2 = t1 + in3
t3 = t2 - in4
out
= t3
Output: exe2.txt
LDA in1
ADD in2
STA t1
LDA t1
ADD in3
STA t2
LDA t2
SUB in4
STA t3
LDA t3
STA out
RESULT:
Thus a C program
to generate a assembly language instruction from three address code is written,
executed and the output is verified.
Sir,The social media plugin used on the left side of the page is very annoying since it blocks the view of the content.
ReplyDeleteI think it is better to either remove it or replace with a small one.
This program has conio.h related errors
ReplyDeleteiota() is not declared and defined in code.
ReplyDeletehttps://bayanlarsitesi.com/
ReplyDeleteManisa
Denizli
Malatya
Çankırı
YYPC
van
ReplyDeleteerzincan
sivas
ağrı
manisa
OGNH
yalova
ReplyDeleteyozgat
elazığ
van
sakarya
VKİO
whatsapp görüntülü show
ReplyDeleteücretli.show
2161
79D47
ReplyDeleteOsmaniye Parça Eşya Taşıma
Aydın Evden Eve Nakliyat
Mersin Parça Eşya Taşıma
Afyon Lojistik
Burdur Lojistik
07D28
ReplyDeletebuy sustanon
buy clenbuterol
Malatya Evden Eve Nakliyat
Silivri Boya Ustası
order anapolon oxymetholone
Tekirdağ Çatı Ustası
order sarms
Elazığ Evden Eve Nakliyat
Kripto Para Nedir
FBF2D
ReplyDeleteEtlik Boya Ustası
Ankara Lojistik
Karaman Lojistik
Pancakeswap Güvenilir mi
Çerkezköy Çelik Kapı
Karabük Şehir İçi Nakliyat
Konya Evden Eve Nakliyat
Batman Parça Eşya Taşıma
Coinex Güvenilir mi
DE22F
ReplyDeleteErzurum Parça Eşya Taşıma
Çerkezköy Koltuk Kaplama
Hakkari Lojistik
Isparta Parça Eşya Taşıma
Bilecik Lojistik
Aydın Parça Eşya Taşıma
Çerkezköy Bulaşık Makinesi Tamircisi
Çerkezköy Parke Ustası
Huobi Güvenilir mi
72F8E
ReplyDeleteYozgat Lojistik
Sinop Evden Eve Nakliyat
Niğde Parça Eşya Taşıma
Osmaniye Evden Eve Nakliyat
Çerkezköy Marangoz
Batman Şehirler Arası Nakliyat
Malatya Evden Eve Nakliyat
Gümüşhane Evden Eve Nakliyat
Referans Kimliği Nedir
67AEA
ReplyDelete%20 binance komisyon indirimi
5750A
ReplyDeletereferans kodu %20
FC37F
ReplyDeletereferanskodunedir.com.tr
F2AAE
ReplyDeletetokat chat sohbet
tamamen ücretsiz sohbet siteleri
siirt görüntülü sohbet siteleri ücretsiz
Antalya Kadınlarla Sohbet
kırıkkale görüntülü sohbet kadınlarla
Trabzon Muhabbet Sohbet
trabzon rastgele sohbet
bitlis canlı görüntülü sohbet uygulamaları
Antalya Rastgele Sohbet Siteleri
F5D92
ReplyDeleteMith Coin Hangi Borsada
Area Coin Hangi Borsada
Bitcoin Mining Nasıl Yapılır
Bitcoin Çıkarma Siteleri
Clubhouse Takipçi Satın Al
Tiktok İzlenme Hilesi
Binance'de Kaldıraç Var mı
Expanse Coin Hangi Borsada
Twitter Retweet Hilesi
F6671
ReplyDeleteKripto Para Kazanma
Big Wolf Coin Hangi Borsada
Referans Kimliği Nedir
Coin Çıkarma Siteleri
Periscope Takipçi Hilesi
Bitcoin Kazma
Kripto Para Madenciliği Siteleri
Snapchat Takipçi Satın Al
Görüntülü Sohbet
ED4D1
ReplyDeleteSohbet
Coin Üretme Siteleri
Twitter Beğeni Satın Al
Binance Referans Kodu
Görüntülü Sohbet
Threads İzlenme Hilesi
Facebook Beğeni Hilesi
Coin Nasıl Üretilir
Binance'de Kaldıraç Var mı
2702B
ReplyDeleteDlive Takipçi Satın Al
Bitcoin Nasıl Üretilir
Pinterest Takipçi Hilesi
Binance Nasıl Oynanır
Shibanomi Coin Hangi Borsada
Kripto Para Nasıl Kazılır
Parasız Görüntülü Sohbet
Threads Beğeni Hilesi
Fuckelon Coin Hangi Borsada
5F935
ReplyDeleteGömeç
Kumluca
Alacakaya
Tuşba
Çerkeş
Yayladağı
Aksaray
Nazımiye
Termal
شركة عزل خزانات بجازان nZmv8mMmkL
ReplyDeleteشركة مكافحة النمل الابيض zwWWPXK0mS
ReplyDeleteشركة تسليك مجاري بالهفوف xaR2wi2yiV
ReplyDeleteشركة تسليك مجاري بالقطيف rofXKYTO2E
ReplyDelete