Programming Language) Study Week 2 - PL Basics

Jay Kim·2022년 1월 17일
0

Programming Language

목록 보기
2/11
post-thumbnail

1)Terminology 용어 소개

High-level language : 고급언어로 사람이 이해해하기 쉽게 작성된 프로그
래밍 언어 EX) C, C++, Java, C# 등
Low-level language : 저급언어로 컴퓨터가 이해하기 쉽게 작성된 프로그래
밍 언어
o Assembly language : 기계어와 일대일 대응이 되는 언어
o Machine language : 변환 과정 없이 컴퓨터가 직접 처리할 수 있는
유일한 언어

2)Terminology 프로그램/파일 소개

Source program/file : 고급언어로 작성되며 확장자는 .c
Object program/file : 기계어로 변역된 코드지만 실행이 불가하며 확장자
는 .obj
Executable program/file : 기계어로 번역된 코드로 실행이 가능하다 확장
자는 .exe

3)How to develop a program (언어 번역 과정)

1. Edit 과정 : 사용자가 원시프로그램을 작성한다.
2. Complie 과정 : 컴파일러를 통해 원시 프로그램으로 작성된 언어를 컴퓨터
가 이해하기 쉬운 기계어로 바꾸어준다. (Object Program 생성)
3. Link 과정: 생성된 Object Program 을 링커 과정을 거쳐 로드모듈 실행 가
능한 프로그램을 생성한다.
o Linker 란? 목적프로그램(Object Program)을 실행 가능한 프로그
램으로 만드는 과정
4. Load 과정 : Loader 에 의해 프로그램이 실행된다.
o Loader 란? 로드 모듈 프로그램을 주기억 장치 내로 옮겨서 실행
시켜 주는 소프트웨어

4) Programming Environments (개발 환경)
• Windows
• Unix, Linux (Redhat, Ubuntu, Fedora ..)
o vi: 소스 편집기
o gcc: GNU Complier Collection 으로 GNU 의 C 컴파일러 의미
o gdb: GNU 디버거 의미

5) Programming steps in Visual Studio
• Compile : Ctrl + Shift + B
• Run : Ctrl + F5
• Load > Run : Command Prompt


6) Command promt/shell (명령 프롬프트)

디렉토리 (directory) = folder
명령어
o dir : 디렉토리
o cd : 폴더로 이동 dir 검색 후 cd '폴더'
o cd .. : 상위 단계로 가기
o del 파일명.txt : 파일 삭제
o ipconfig : IP 주소 확인


<Chapter 1>

1) PL Definiton

• PL : 프로그램의 표기법
• Program = data + algorithm 으로 명령의 순서


1. Lexical structure

o Identifiers :변수 이름 ex) a, sum
o Keywords ex) int, if
o Operators : 연산자 ex) +,-, ...
o Separators ex) ;
o Literals : 상수 표기 ex) "a" , 15
o Comment ex)/
~ */, //

2. Syntactic structure (문법 구조)

3. Semantics (의미) : what will happen

2) Computation / programming paradigm

-Paradigm = 문제 해결 방법
-Paradiam 에 따른 프로그래밍 구분

1.Imperative/procedural programming (명령형/절차적 프로그래밍)
-변수가 핵심이며 메모리를 나타낸다. assignment 에 의해 메모리가
조작된다.

2.Computation description based on mathematics (수학에 기반을 둔
방법)

-함수형 언어와 논리형 언어가 있다.

3.Object-oriented paradigm (객체 지향)
-변수 보다 큰 단위인 객체를 다룬다.
-캡슐화(Encapsulate) : objects 에 정의된 연산을 통해서만 접근 가능할
수 있도록 objects 를 캡슐화한다.

-objects = 메모리 변수(memory location) + 연산자들(operations)
-class = 동일한 속성을 가진 objects 의 그룹
-computation = objects 끼리의 상호작용


3)Kinds of PLs

• 언어 수준에 따른 구분
-Low level/high level languages

• 응용분야에 따른 구분
-general purpose languages, databse query languages 등..

Implementation method
1)Translation/compile
-Compiler 와 linker 가 따로 존재하며 빠르고, 덜 안전하다.
-ex)C, C++, Pascal
2)Interpreter
-platform independent : interpreter 가 번역과 실행을 동시에 수행하기 때
문에 코드가 준다. 그러나 느리다는 단점이 있다.
-ex) LISP, Prolog, Python, Java script
3)hybrid
-hybrid = Translation/compile + Interpreter

  • Interpreter 방식의 속도 개선을 위하여 Compiler 를 추가
    -ex) Java

4)Abstraction

• Abstraction = 여러개를 묶어서 하나로 표현하는 단순화 의미
• Abstraction in PL : Data abstrcion , Control abstraction

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN