UNIX Unbounded A Beginning Approach 이 성 현 Home : nimilx2.hannam.ac.kr E-mail : shlee@netwk.hannam.ac.kr Tel : +82-42-629-7559
목차 프로그램 개발 프로그래밍 언어 프로그래밍 기술 간단한 C 프로그램 UNIX 프로그램 트래킹 유틸리티 요약 질의 및 응답 실습
프로그램 개발 프로그램 컴퓨터가 기본적인 산술, 논리 연산을 수행함에 있어서 컴퓨터에게 지시하기 위한 일련의 명령어 집합 연산자 + 피 연산자로 구성 연산자 : 수행되어야 할 기능을 지시 피 연산자 : 처리되어야 할 위치와 데이터 요소를 지칭 프로그래밍 프로그램을 만들기 위한 과정 프로그래밍 언어가 필요하며, 현재 다양한 프로그래밍 언어가 존재 C/C++, Java, Basic, Fortran, Cobol, Pascal, Binary Code 등
프로그래밍 언어 프로그래밍 저급 언어 컴퓨터가 문제를 해결하기 위한 명령어들을 작성하는 절차 기계어(machine language) 연속적인 0과 1로 코드화 기초적 수준의 컴퓨터 연산어로 사용하며, 컴퓨터만이 이해하고 실행할 수 있는 유일한 언어 컴파일러는 프로그래밍 언어로 작성된 코드를 기계어로 번역 어셈블러 언어(assembler language) 기계어와 같이 특정 컴퓨터에 한정적이지만 명령어들이 기계어와 다르게 표현 mnemonics라는 공인된 기호를 사용 assember라는 프로그램을 실행시켜 언어를 번역 교재 그림 10.2 참고
프로그래밍 언어 고급언어 COBOL(Common Business Oriented Language) 1959년에 소개됨 메인프레임 컴퓨터에서 대량의 자료를 처리하기 위해서 제공 FORTRAN(FORmula TRANsaltor) 과학/공학 프로그래밍에 적합하며 가장 인기 있는 과학용 언어 최신 버전은 FORTRAN77 Pascal 1969년에 개발 구조적 프로그래밍 개념을 적용 BASIC(Beginners All-purpose Symbolic Instruction Code) 1964년에 개발 교육적 목적으로 가장 효율적인 프로그래밍 언어로 인식
프로그래밍 언어 고급 언어 C C++ JAVA 1972년에 개발 시스템 프로그래밍, 운영체제, 컴파일러 등에 초점을 맞춤 대부분의 UNIX 운영체제는 C언어로 개발 비교적 기계에 독립적 C++ 1980년대에 개발 C 언어에 객체지향언어의 개념을 도입 객체지향 프로그래밍 구현에 대한 언어 메커니즘을 제공 JAVA 1990년에 선 마이크로시스템에서 개발 1995년에 배포 텔레비전, 마이크로웨이브 오븐 등과 같은 고객의 전자 장치를 제어하기 위해 설계 웹 페이지를 위한 프로그램과 인터넷 브라우저에 내장 C++ 문장 구조와 비슷하지만 혼동되는 특징을 제거
프로그래밍 기술 실행 프로그램을 만들기 위한 단계 프로그래밍 언어의 선택은 응용 프로그램의 특성에 의존 소스 코드 목적 코드 소스 코드 생성(source code) 목적 파일 생성(object code/object module) 실행 파일 생성(execue code/load module) 소스 코드 파일 편집기 등을 통해 작성한 코드 사용자가 선택한 프로그래밍 언어로 작성 목적 코드 기계가 이해 가능하도록 기계어로 번역된 코드 컴파일러와 인터프리터를 통해 목적코드 생성 실행 코드 링커(linker)와 링크 편집기(link editor)를 통해 프로그램 간 참조 모듈을 작성 모든 코드가 결합된 실행 가능한 프로그래밍을 로드 모듈이라 함
프로그래밍 기술 컴파일러/인터프리터 컴파일러/인터프리터의 기능 컴파일러(Compiler) 인터프리터(Interpreter) 소스 코드를 컴퓨터가 명령들을 이해할 수 있도록 기계 코드로 번역하는 것 컴파일러(Compiler) 고급 언어로 작성된 프로그램 명령을 컴퓨터가 해석하고 실행할 수 있는 기계어로 번역하는 시스템 소프트웨어 프로그램 전체적인 프로그램을 한번에 컴파일하고 전체를 컴파일 할 때까지 아무런 응답을 주지 않음 각 언어에 따른 별도의 컴파일러가 필요 인터프리터 보다 더 좋고 효율적인 객체 코드를 생성 컴파일된 프로그램은 더 빨리 수행되며 보다 적은 공간을 필요 인터프리터(Interpreter) 상위 레벨 언어 프로그램을 기계어로 번역 한번에 한 라인만 번역하므로 즉각적인 응답이 가능 코드에 오류가 있을 경우 즉각적인 오류 검출 분리된 목적 코드 파일을 생산하지 않으며 프로그램이 실행될 때 번역 절차를 수행 컴파일러에 의해 수행된 것보다 효율적이지 못함
간단한 C 프로그램 C 코드의 작성
간단한 C 프로그램 컴파일 및 실행
간단한 C 프로그램 출력 파일의 생성 출력 재지정에 의한 파일 생성 파이프 연산자에 의한 파일 생성
간단한 C 프로그램 오류 정정하기 구문 오류에 의한 오류 코드와 컴파일 결과
간단한 C 프로그램 표준 오류 재지정 >를 활용하여 오류의 재지정 작업을 수행 파일 기술자 번호를 할당하여 에러 코드를 생성 컴파일시 발생하는 오류코드를 파일로 저장하여 추후 디버그할 때 활용
UNIX 프로그램 트래킹 유틸리티 유틸리티 make 유틸리티 SCCS 유틸리티 하나 이상의 파일을 구성할 때 유용 자동으로 변경되어지고 재 컴파일이 필요한 소스 파일에 대한 정보를 유지 필요할 경우 프로그램을 재 링크 제어 파일로부터 해당 정보를 가져옴 제어 파일(control file)은 소스 파일 종속성과 다른 정보를 포함 SCCS 유틸리티 Source Code Control System 프로그램의 개발을 유지, 관리하도록 도움 프로그램이 SCCS 통제하에 있을 프로그램의 다양한 버전을 생성할 수 있음
요약 프로그래밍 언어의 특징 간단한 C 프로그램의 작성
질의 및 응답
실습 first.c 코드의 작성과 컴파일 파일의 실행 오류 코드의 생성