본문 바로가기

C언어

Abstract Syntax Tree(AST) 추상구문트리란? 우선 컴파일을 한다는 것은 언어간의 의미론적인 매핑(mapping)과정을 뜻합니다.더 직설적으로 말하면 고급언어를 의미의 변화없이 기계어로 매핑하는 과정이죠.그런데 고급언어로 넘어가면서 어셈블리어와 같은 저급언어에는 없는 여러가지 추가개념이들어가게 되었습니다. 어셈블리어에서의 매크로야 그나마 일차원적인 대치 과정이니 상관없지만함수, 객체지향 쪽으로 들어가면 골치가 아파집니다. 언어는 점점 더 풍부한 요소들이 있는데이것을 어떻게 단순히 평면적으로 번역할까요? 게다가 규모도 장난이 아니니 일차원적인자료구조로는 사실상 관리가 불가능합니다. 그럼 어떤 구조로 해야하나? 이런 체계적이고복잡하고 광범위한 자료 덩어리에 가장 잘 써먹을 수 있는 구조가 바로 트리(tree)입니다. 컴파일러는 내부적으로 여러가지 컴포넌.. 더보기
python의 시작에서.. python을 시작한지 3일째 되는 날..c언어보다는 자유롭고 영어 문장을 쓰는 듯한 느낌..아직까진 로직이 다 이해되진 않았지만..다만 오늘 의문이 드는것은 continue를 쓸때는 밑으로 해서 계속 진행되지 않고(?) 다시 실행문 첫부분으로 간다는거좀더 코드를 돌려봐야겠다 더보기
2. scanf란 무엇인가? 이전 글에서는 문자출력을 시켜주는 printf에 대해서 배워보았습니다. 그러면 이제는 문자를 입력받아서 그것을 출력시키는법을 배워봐야겠죠?? %d: 10진수 정수형으로 나타내어줌(10진수 기반).%e: floating-pointer 에서의 '지수'를 나타내어줌.%f: floating-pointer 에서의 고정소수점을 나타내어줌 (integer에서는 소숫점을 표면 못해줌)%g: floating-pointer 에서의 지수 이거나 고정소수점을 나타내어줌 문자 출력이 printf(" 입력할내용 "); 이였다면 문자 입력은 scanf("%specifies, &변수) 입니다. 예를 들면 void main(){int a;printf("정수를 입력하시오 : ");scanf("%d", &a);printf("입력하신 정수.. 더보기
1.Hello World 안녕하세요. 이글을 보시는분들중, 다들 Hello World 는 한번씩은 접해보셨을것 같습니다. 일단 제일 기초부터 시작하겠습니다. c 파일을 먼저 만드시면 그안에 코드로 #include // stdio.h 헤더파일입니다(h는 헤더를 의미합니다).int main(){ // main함수 시작부분입니다. printf("Hello World! \n"); //printf문 ""안에는 글자 또는 문자 를 출력해줍니다. return 0; //현재 실행중인 main함수의 종료 } 코드 실행결과 다들 한번씩 printf문 안에 글씨를 넣어보시고 숫자도 넣어보시고~ 여러가지 넣어보시고 오류가 나는것들을 찾아보세요. 과제1. 출력창에 Maybe i'll be genius Programmer '본인이름'! 를 띄우세요. 다.. 더보기
1.C포인터에서의 변수와 메모리 #include void main(){int n = 100; printf("%d\n", sizeof(n));printf("%d\n", n);} 시작주소가 100이라고 가정하고, int형은 4byte 주소값을 가지므로 n(정수 100)은 100,101,102,103 까지의 주소를 차지한다. 아주 기초적인 내용이다. 더보기