4-2학기
2010. 1. 3. 22:24
컴파일러 수업에 프로젝트로 진행했던 ncc컴파일러의 최종 발표자료이다.
대략적인 이야기만있고, 자세한 설명은 말로 했기에 발표자료에 포함되어 있지않다.
입사시기까지 시간이 좀 남았기에 몇몇 자료들을 포스팅하려고한다.
우선은 컴파일러.
이름은 NCC컴파일러이다. (Ncc is not a C Compiler의 약자랄까......)
아래코드는 ncc에서 컴파일이 가능한 소스코드중 하나이다.
실제로 exe파일을 생성해낸다.......
MacroAssmbler와 LInker가 연동되어있어 인텔 x86 exe파일을 생성해낸다.
//------------------------------------
// 스페이스 띄우는 함수
void space(int num)
{
int k;
for(k=0; k<num; k++)
{
printf(" ");
}
}
// 별찍는 함수
void get(int num)
{
int i,j,k;
printf("\n");
for(i=0; i<num; i++)
{
k=num-i;
space(k);
k=i*2+1;
for(j=0; j<k; j++)
{
printf("*");
}
printf("\n");
}
}
// 소수 찾는거
void prt_prime(int num)
{
int i,j;
for(i=2; i<=num; i++)
{
for(j=2; j<i; j++)
{
if( i%j == 0 )
{
break;
}
}
if(i==j)
{
printf("%d ",i);
}
}
}
// 메인함수
void main()
{
int testcode;
get(10);
prt_prime(100);
}
펑션콜, 인자, 에러체크등을 기본적으로 지원한다.....
아래는 발표자료이다
대략적인 이야기만있고, 자세한 설명은 말로 했기에 발표자료에 포함되어 있지않다.
입사시기까지 시간이 좀 남았기에 몇몇 자료들을 포스팅하려고한다.
우선은 컴파일러.
이름은 NCC컴파일러이다. (Ncc is not a C Compiler의 약자랄까......)
아래코드는 ncc에서 컴파일이 가능한 소스코드중 하나이다.
실제로 exe파일을 생성해낸다.......
MacroAssmbler와 LInker가 연동되어있어 인텔 x86 exe파일을 생성해낸다.
//------------------------------------
// 스페이스 띄우는 함수
void space(int num)
{
int k;
for(k=0; k<num; k++)
{
printf(" ");
}
}
// 별찍는 함수
void get(int num)
{
int i,j,k;
printf("\n");
for(i=0; i<num; i++)
{
k=num-i;
space(k);
k=i*2+1;
for(j=0; j<k; j++)
{
printf("*");
}
printf("\n");
}
}
// 소수 찾는거
void prt_prime(int num)
{
int i,j;
for(i=2; i<=num; i++)
{
for(j=2; j<i; j++)
{
if( i%j == 0 )
{
break;
}
}
if(i==j)
{
printf("%d ",i);
}
}
}
// 메인함수
void main()
{
int testcode;
get(10);
prt_prime(100);
}
펑션콜, 인자, 에러체크등을 기본적으로 지원한다.....
아래는 발표자료이다