Search

시스템 프로그래밍

태그
Major

Lab1

DFA State를 사용하여, 단어 수 세기 프로그램을 개발
이때, 총 글자수, 단어 수, 줄 수를 따로 세야한다.
주석(/* ... */ )이 있는 경우, 안에 들어가는 글자수나 단어수는 카운트하지 않는다.
DFA

Lab2

String manuplation 함수를 구현해보자
strlen, strcpy, strcmp, strstr, strcat
UNIX의 popular tool인 grep을 간단하게 구현한 simple grep , sgrep을 구현하자.
./sgrep -f Google < google_wiki.txt ⇒ txt 파일 내의 Google이란 단어를 발견해서, 단어가 있는 line을 출력
./sgrep -r Google Microsoft < google_wiki.txt > microsoft.txt ⇒ txt 파일 내의 Google 이란 단어를 Microsoft란 단어로 모두 치환
./sgrep -d google_wiki.txt microsoft.txt ⇒ txt 파일 중, 다른 줄이 있다면 비교해서 출력

Lab3

dynamic resizing array를 구현하고, struct UserInfo를 등록, 삭제, 통계 등을 위한 interface를 구현
User의 id와 name에 대한 두 개의 HashTable을 구현하고, 이것에 userInfo를 등록,삭제,통계를 낼 수 있는 interface를 구현

Lab4

기본적인 어셈블리 코드 작성
stack 구조를 이용한 간단한 계산기 코드

Lab5

커맨드 라인을 받아들여서, 적절한 프로그램을 찾아 실행시키는 myShell 작성
programmer error Handling
Lexical analysis를 통해 들어오는 input을 단어 단위로 분해한다. 이 때, double quotes는 single token으로 취급하며, ‘|’는 special character로써 별도의 token으로 취급
syntatic analysis는 쪼개진 토큰이 올바른 형식인지 확인한다.
명령어 단위로 쪼갰다면, fork를 이용해 명령을 실행
여러 개의 파이프와 redirection을 지원해야함.
DFA