IT/학과 공부

    [C] 읽기 전용 메모리 공간

    [C] 읽기 전용 메모리 공간

    안녕하세요. 밥한그릇입니다 ^^ 오늘 친구와 연락을 하던 중 C언어의 '읽기 전용 메모리'에 관한 내용을 새롭게 알게되어, 오랜만에 포스팅을 쓰게 되었습니다. 그럼 시작합니다~ C언어는 프로그래밍 언어의 기본으로도 여겨지며, 하드웨어와 관련된 많은 api를 제공하고 직접 메모리를 할당-해제합니다. 따라서 사람의 언어보다는 기계의 방식에 더 가까운 low-level 언어로 분류되고 있습니다. 저 또한 C언어를 주력 언어로 사용해왔으나, 보통 개발 시 사용하게 되는 C언어의 기능이 제한적인 만큼 '읽기전용 메모리 공간'에 대한 내용은 오늘 처음 접하게 되었습니다. 따라서 포스팅을 통해 그 설명과 기록을 해두고자 합니다. 📟 메모리 공간 4개의 메모리 segment 메모리 공간은 OS에 의해 할당되어, 물리적..

    [전공] C에서의 변수의 scope와 lifetime

    [전공] C에서의 변수의 scope와 lifetime

    안녕하세요 밥한그릇입니다. 오늘은 변수들의 종류, 그리고 그 scope와 lifetime에 대해 알아보는 시간을 가질거에요. 다음 C 예제코드를 보고 그 scope와 lifetime에 대해 추측해봅시다. int x; static int y; int f(int v) { static int a = 0; int b; ... a++; b = a + v; ... } 다음과 같은 예제 코드가 주어졌을 때, 변수 x, y, v, a, b 의 scope와 lifetime은 각각 어떻게 될까요? int x : 전역 변수 static int y : 정적 전역 변수 int v : 지역 변수 (매개변수) static int a : 정적 지역 변수 static int b : 지역 변수 위 변수들은 이러한 종류로 구분됩니다. 정..

    [컴파일러] LR 파서 문제 풀이

    [컴파일러] LR 파서 문제 풀이

    안녕하세요 밥한그릇입니다. 컴파일러 과목의 LR(top-down) 파서 문제풀이 포스팅에 이어, LR (bottom-up) 파서 문제풀이 포스팅을 작성해보려합니다. https://nsa901.tistory.com/114 [컴파일러] LL 파서와 LR 파서 안녕하세요 밥한그릇 입니다. 제가 이번에 학교에서 수강한 컴파일러 과목의 기말고사 시험이 끝난 지 이틀이 지났네요.. 시간을 많이 들여 강의노트를 정리한 페이지를 만들고, 거의 통째로 외 nsa901.tistory.com 앞선 개념 내용은 이전 포스팅에 설명해두었으니, 참고하시면 좋습니다. 이 포스팅에서는 parsing table일 이용해 LR 파서가 동작하는 예제를 풀어보는 시간을 갖겠습니다. 자 그럼, 시작합니다. 우선, 알고있어야할 한가지는 LR ..

    [컴파일러] LL(1) 파서 문제 풀이

    [컴파일러] LL(1) 파서 문제 풀이

    참고로, LL(1) 파서는 한 글자만 내다보고 parsing 을 수행한다는 뜻입니다. k 글자까지 내다본 뒤 parsing을 수행하는 경우 LL(k) 파서라고 불립니다. 저는 이 포스팅의 예시 문제에서 predictive parser, 그러니까 non-deterministic LL 파서만 다룰 것입니다. 또, non-terminal과 terminal, 그리고 문법으로 non-terminal에서 terminal을 유도(derivation)하는 내용에 대해 대략 안다고 가정하고 설명하겠습니다. 기본적인 개념 내용은 제 이전 포스팅에서 설명해놓았으니 참고바랍니다. https://nsa901.tistory.com/114 [컴파일러] LL 파서와 LR 파서 안녕하세요 밥한그릇 입니다. 제가 이번에 학교에서 수강한..

    [컴파일러] LL 파서와 LR 파서

    [컴파일러] LL 파서와 LR 파서

    안녕하세요 밥한그릇 입니다. 제가 이번에 학교에서 수강한 컴파일러 과목의 기말고사 시험이 끝난 지 이틀이 지났네요.. 시간을 많이 들여 강의노트를 정리한 페이지를 만들고, 거의 통째로 외우다시피 시험 준비를 했어요. 그렇지만 불행하게도 강의노트에 잘 적혀있지 않은 부분들에서 기말 고사 문제가 많이 나와서 슬펐습니다. (ㅠㅠ) 제가 강의노트의 어려운 예제들을 풀고 이해하는 데 들었던 시간이 상당했었거든요. 인터넷에도 친절히 설명하는 자료가 거의 없었어서 더욱 그랬죠. 그래서 "예제를 이해하고 공부한 내 노력이 아까우니, 따로 예제들을 쉽게 풀이하는 포스팅을 만들어보자!"는 생각이 들었습니다. 아무래도 과목 진도 상 중후반쯤에 위치한 내용에다가 그 분량이 많아요. 그러니 컴파일러 과목의 앞부분에 대한 기초 ..

    C에서 시그널을 보내고 처리하는 방법 (kill, signal, sigaction)

    C에서 시그널을 보내고 처리하는 방법 (kill, signal, sigaction)

    Sending and Handling Signals in C (kill, signal, sigaction) 참고하면 좋은 자료 (만화) : sigterm vs sigkill 차이점 What is SIGTERM? What's the difference between SIGKILL & SIGTERM? 해당 영상의 내용을 정리한 자료입니다. 문제 시 댓글 주시면 삭제하겠습니다. 최근 42 과제 미니톡을 진행하며, 시그널 프로그래밍에 관심이 생겨 이것저것 유튜브로 강의와 영상을 찾아보고 있었습니다. 그 중에 흥미롭고 짧은 영상이 있어 내용을 정리하여 공유합니다. 시그널이란? 시그널은 당신이 프로세스와 상호작용할 수 있는 가장 간단한 방법 중 하나입니다. mac이나 리눅스와 같은 모든 unix 스타일 운영체제에서..