CODE OPTIMIZATION TECHNIQUE
AIM:
To write a program for implementation
of Code Optimization Technique.
ALGORITHM:
Step1: Generate the program for factorial program using
for and do-while loop to specify optimization technique.
Step2: In for loop variable
initialization is activated first and the condition is checked next. If the
condition is true the corresponding statements are executed and specified
increment / decrement operation is performed.
Step3: The for loop
operation is activated till the condition failure.
Step4: In do-while
loop the variable is initialized and the statements are executed then the
condition checking and increment / decrement operation is performed.
Step5: When
comparing both for and do-while loop for optimization dowhile is best because
first the statement execution is done then only the condition is checked. So,
during the statement execution itself we can find the inconvenience of the
result and no need to wait for the specified condition result.
Step6: Finally when
considering Code Optimization in loop do-while is best with respect to
performance.
PROGRAM
CODE:
//Code
Optimization Technique
#include<stdio.h>
#include<string.h>
struct
op
{
char
l;
char
r[20];
}
op[10],pr[10];
void
main()
{
int
a,i,k,j,n,z=0,m,q;
char
*p,*l;
char
temp,t;
char
*tem;
printf("Enter
the Number of Values:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("left:
");
scanf("
%c",&op[i].l);
printf("right:
");
scanf("
%s",&op[i].r);
}
printf("Intermediate
Code\n") ;
for(i=0;i<n;i++)
{
printf("%c=",op[i].l);
printf("%s\n",op[i].r);
}
for(i=0;i<n-1;i++)
{
temp=op[i].l;
for(j=0;j<n;j++)
{
p=strchr(op[j].r,temp);
if(p)
{
pr[z].l=op[i].l;
strcpy(pr[z].r,op[i].
r);
z++;
}
}
}
pr[z].l=op[n-1].l;
strcpy(pr[z].r,op[n-1].r);
z++;
printf("\nAfter
Dead Code Elimination\n");
for(k=0;k<z;k++)
{
printf("%c\t=",pr[k].l);
printf("%s\n",pr[k].r);
}
for(m=0;m<z;m++)
{
tem=pr[m].r;
for(j=m+1;j<z;j++)
{
p=strstr(tem,pr[j].r);
if(p)
{
t=pr[j].l;
pr[j].l=pr[m].l;
for(i=0;i<z;i++)
{
l=strchr(pr[i].r,t)
;
if(l)
{
a=l-pr[i].r;
printf("pos:
%d\n",a);
pr[i].r[a]=pr[m].l;
}}}}}
printf("Eliminate
Common Expression\n");
for(i=0;i<z;i++)
{
printf("%c\t=",pr[i].l);
printf("%s\n",pr[i].r);
}
for(i=0;i<z;i++)
{
for(j=i+1;j<z;j++)
{
q=strcmp(pr[i].r,pr[j].r);
if((pr[i].l==pr[j].l)&&!q)
{
pr[i].l='\0';
}
}
}
printf("Optimized
Code\n");
for(i=0;i<z;i++)
{
if(pr[i].l!='\0')
{
printf("%c=",pr[i].l);
printf("%s\n",pr[i].r);
}
}
}
OUTPUT:
Hii
ReplyDeletekya re hi saale agar mil gyaa to teri gaaand chood ji jayegi.
ReplyDeleteaap bhi chud gye ky
Delete