프로그래밍 언어 4

[컴퓨터과학개론] 프로그래밍 언어

프로그래밍 언어의 개요 사람의 의도를 컴퓨터에게 전달하여 컴퓨터에게 작업을 수행시키기 위해 만들어짐 사람의 의도를 추상화하여 압축된 언어로 컴퓨터에게 전달되어야 함 의미적으로 애매모호함이 없고 어떤 경우에도 동일한 의미로 해석되어야 함 구문론적 측면에서 명확하게 정의되어야 하며, 의미론적 측면에서 언제나 동일하게 해석되어야 함 논리적으로 설계되어 컴퓨터가 처리할 수 있는 이진코드로의 변환이 명확하고 정확하게 되어야 함 기계어 0과 1의 이진수로 구성되는 언어로 컴퓨터 하드웨어를 직접적으로 제어하기 위한 전기 신호의 표현 형태로 전달될 수 있는 수준의 언어 0과 1로 이루어지기 때문에 사람이 의미를 이해하기 어렵고, 프로그램 작성이 어려움 하드웨어나 컴퓨터 구조에 따라 기계어의 구성과 명령어(0과 1의 나..

CS 2023.12.04

[프로그래밍 언어론] 프로그래밍 언어의 구현

프로그래밍 언어 정의와 구현 프로그래밍 언어 정의 어떤 프로그램이 올바른 형태인지, 또 올바른 형태의 프로그램을 실행하였을 때 어떻게 실행되는 것이 올바른 것인지 규정하는 것 구문(syntax): 형태에 대한 규정 의미(semantics): 실행 결과에 대한 규정 프로그래밍 언어 정의 방법 구문 정의: 문맥 자유 문법, BNF, EBNF, 구문 도표 의미 정의: 기능적 의미론, 표기적 의미론, 공리적 의미론 등 실제로 의미를 정의할 때, 여러 의미론은 매우 난해하므로 대신 자연어를 사용함 프로그래밍 언어 구현 프로그래밍 언어 L로 작성된 어떤 프로그램 P_L이 주어졌을 때, P_L이 L의 구문 규칙을 따르는 올바른 프로그램인지 검사하고, 올바른 경우에 P_L을 L의 의미 규칙에 따라 실행하는 프로그램을 ..

CS 2023.11.30

[프로그래밍 언어론] 프로그래밍 언어의 발전 및 동작원리

프로그래밍 언어의 발전 컴퓨터 시스템과 운영체제의 발전 컴퓨터 시스템의 발전 아이디어 시대: 계산 자동화를 위한 상상 속의 기계 설계(튜링 기계) 전자식 컴퓨터 등장: 전자 신호를 통한 계산 기계(모클리와 에커트의 ENIAC) 프로그램 저장 방식의 컴퓨터: 프로그램과 처리기를 분리(EDVAC) 운영체제의 발전 일괄처리 운영체제 등장: 관리자를 대신할 프로그램 등장 시분할 운영체제: 한 컴퓨터를 여러 사람이 사용 DOS: IBM 컴퓨터, Apple 등 개인용 컴퓨터 등장(DOS) PC 환경 운영체제 발전: GUI 운영체제와 Linux의 발전 1950년대: 초기 프로그래밍 언어 Fortran: 수식과 문장, 제어문의 등장 IBM의 존 배커스에 의해 개발됨 과학계산용 언어 Algol: 구조화 프로그래밍의 발전..

CS 2023.11.22

[프로그래밍 언어론] 프로그래밍 언어 소개

프로그래밍 언어란 무엇인가? 프로그래밍 언어 정의 언어의 정의 자연어는 크게 말과 글, 두 가지 형태로 존재 언어는 의사 전달 수단 언어는 한 사람의 생각을 다른 사람에게 전달하는 데 사용됨 프로그래밍 언어의 정의 프로그래밍 언어는 프로그램 작성에 사용되는 언어 프로그래밍 언어는 의사 전달 수단 주로 사람의 생각을 기계에 전달하는 데 사용됨 프로그래밍 언어의 특징 프로그래밍 언어와 자연어의 차이 방향: 자연어는 양방향이지만 프로그래밍 언어는 단방향 형식: 자연어는 말과 글 모두 쓰지만 프로그래밍 언어는 주로 글 내용: 자연어는 풍부한 내용을 전달하지만 프로그래밍 언어는 정확한 의도를 전달 프로그래밍 언어도 양방향에 사용될 때가 있음 (예: 알고리즘) 최근 프로그래밍 언어는 시각적 언어도 채택하고 있음 (..

CS 2023.11.22