Transcript 운영체제 개념과 종류
프로그래밍 언어 2013학년도 1학기 (Chapter10) Chapter 10. 프로그래밍 언어 I. 개념과 종류 • 프로그램 작성(개발) - 컴퓨터에게 사용자가 원하는 동작을 하고 명령하는 행위 - 컴퓨터는 기계이므로 단순히 사람이 시키는 대로 동작하게끔 설계됨 - 컴퓨터가 원하는 대로 움직여주지 않는 것은 소프트웨어 작성자의 책임 • 프로그래밍 - 자료구조(data structure) + 알고리즘(algorithm) -> 논리(logic)를 구현하는 작 업 - 표본조사 결과를 통해 통계를 내는 프로그래밍 작업 예 1. 표본 조사 결과들을 저장한 변수 결정(정수? 실수? 다른 구조) -> 자료구조 2. 통계를 위한 수식 사용 결정(정규분포? 포아송 분포) -> 알고리즘 3. 위를 바탕으로 궁극적으로 구현하는 것은 사용자가 원하는 결과에 이르는 논리 컴퓨터활용 Page 2 Chapter 10. 프로그래밍 언어 I. 개념과 종류 • 프로그램 - 통칭적인 의미를 가지며 소프트웨어와 유사한 개념 - 소프트웨어가 하드웨어에 대비되는 큰 분류로서의 의미 - 프로그램이란 구체적으로 작성된 실행 코드나 패키지를 의미 - 프로그램 = 시스템 프로그램(운용체제 등) + 사용자 프로그램(응용 프로그램) - 모든 장치들은 운영체제가 제어 및 관리를 하기 때문에 프로그래밍 환경은 운 영체제에 종속되고 하드웨어가 다르더라도 운영체제가 같으면 사용자는 하드 웨어에 무관하게 프로그램을 작성할 수 있음 • 프로세스 - 실행 코드가 컴퓨터에서 수행될 경우 프로세스(process)라 함 • 프로세서(processor) - 프로그램을 이용하여 조정할 수 있는 연산제어 장치(CPU) 컴퓨터활용 Page 3 Chapter 10. 프로그래밍 언어 I. 개념과 종류 • 프로그램 과정(소프트웨어 공학) - 어떤 기능을 수행할 것인지 결정. 프로그램을 수행시켰을 때 컴퓨터가 어떻게 반응해 주기를 바라는지 구체적으로 기술 - 어떠한 프로그래밍 언어를 것이며 어떠한 개발 환경에서 작업할 것인 지 결정 - 프로그래밍 전 자신의 의도를 논리화하여 체계화 함. 사람 위주 생각 > 기계 위주 - 자료 구조를 설정 - 세부적인 알고리즘을 결정 - 편집기(Edit)를 이용하여 직접 코딩함 - 컴파일 과정을 통해 오류를 정정하고 결과를 확인 - 확인된 기능 위에 자신이 원하는 기능을 자꾸 더해가며 반복 컴퓨터활용 Page 4 Chapter 10. 프로그래밍 언어 I. 개념과 종류 • 프로그램 언어의 선택 - 초보자에게 어울리는 언어란? 중요한 것은 사고의 체계. 일반적으로 널리 쓰이는 언어. 꾸 준함이 중요 - C 언어는 전문가용인가? 프로그래밍 언어는 단지 도구일 뿐, 중요한 것은 논리 이다 • 프로그래밍 언어의 종류 - 어셈블리어 : 기계어를 문자화 시킨 언어 - 포트란(FORTRAN) : 복잡한 수학계산/과학기술계산에는 용이하 나 사무용으로는 불리 - 코볼(COBOL) : 사무용으로 널리 사용된 언어. 파일 처리에 용이 - 파스칼(PASCAL) : 교육적인 언어로 사용됨. 완성도가 높은 언어 컴퓨터활용 Page 5 Chapter 10. 프로그래밍 언어 I. 개념과 종류 - C 언어 유닉스 OS 개발에 사용. 범용 언어이며 이식성/확장성/유연성이 뛰어남 구조화 프로그래밍에 적합한 제어문을 가지고 있음/ 비트 단위의 연산이 가 능 포인터를 사용하여 자료 값을 조작할 수 있음 함수들의 집합으로 구성 오류검사 기능이 약함 포인터가 과다 사용 될 경우 오류 발생의 원인을 발견하기 어려움 밀집된 표현으로, 읽기가 어려운 프로그램이 될 수 있음 - C++ : 객체지향 언어. C와 유사한 점이 많음. 그러나 다른 언어라고 보는게 옳 음 - 자바(JAVA) 객체지향 언어이며 범용언어 C++에 비해 배우기 쉽다(x) JIT 컴파일러 / VM에서 동작 자바스크립트 언어와는 전혀 다른 언어 컴퓨터활용 Page 6 Chapter 10. 프로그래밍 언어 I. 개념과 종류 - C# 객체지향 언어이며 범용언어 닷넷(.NET) 플랫폼에서 동작 자바 언어와 비슷 - 기타 언어 : 비주얼베이직, LISP, 프롤로그, 델파이, 파워빌더 등 컴퓨터활용 Page 7 Chapter 10. 프로그래밍 언어 II. 번역 기법 • 컴파일러 - 특정 프로그램 언어로 작성된 문장을 처리하여 기계어 또는 컴퓨터가 사용할 수 있는 코 드로 변경시켜주는 특수한 용도의 프로그램 • 컴파일러 실행 과정 - 소스코드의 모든 문장을 먼저 구분적으로 분해 - 만일 다른 문장을 참조하는 경우 문장이 정확히 참조될 수 있도록 여러 번의 연속적인 상 태에서 결과 코드를 생성(목적코드:object code) - 목적코드가 동시에 실행되고 서로의 명령이나 데이터를 상호 참조하게 될 때, 그 명령어 나 데이터들 간의 상대적 위치를 정함(링크 편집: Linkage editing) * 자바 언어는 목적코드를 바이트 코드로 생산(어떤 플랫폼에서도 동작될 수 있도록) 컴퓨터활용 Page 8