플밍 언어

ttomy·2022년 3월 10일
0

프로그래밍 언어

목록 보기
2/11

1.5 언어 category

명령형 언어(imperative)
함수언어
논리언어

객체지향 언어: 명령형에 객체지향을 더 얹은 형태로 다른 카테고리는 아님

HTML: 하이퍼-텍스트-마크업-랭귀지
마크업-> 마크로 둘러싸인(tag로 둘러싼) 언어: 브라우저에 그림

  • 아날로그-> 디지털화 과정
  1. 샘플링
  2. quantisation

1.6 language design trade-off

1.7 함수의 수행

프로그램을 어케 실행시킬 것인가.

3가지 방법
컴파일러
퓨어 인터프리터
하이브리드

처음:기계어로 프로그래밍함 ->불편
-> high level언어: 사람의 언어와 유사하게 -> 컴파일러가 필요해짐

그림1.3 컴파일러가 하는일을 보여줌
번역의 과정
sentence 단위 .과;
단어를 구분(lexical) lexem(어휘)
문법적으로 맞는가(systaxt analyzer)
번역해주기 전 중간코드를 만듬(intermedia code)
이 중간코드로 code optimization(빠르게 실행하는 방법 탐색)
-> 기계어로 번역함.

-인터프리터 방식(Pure interpretation)
하이레벨 프로그램을 기계어로 바꾸지 않고 그대로 실행
컴파일러말고 하이레벨 코드를 읽어들이는 다른 소프트웨어를 사용(인터프리터).
프로그램은 인터프리터 상에서 돌고, 인터프리터는 cpu위에서 돈다.

인터프리터=virtual machine ex)JVM

-인터프리터를 두는 것의 이득?
Pure interpretation has the advantage of allowing easy implementation of
many source-level debugging operations, because all run-time error messages can refer to source- level units

  • 하이브리드 방식
    1차적으로 중간코드를 만들고, 중간코드를 인터프리터에서 실행
    -> 자바가 그예임
    java->byte code->jvm

byte code와 기계어의 차이점
기계어는 cpu에 따라 달라짐. 하지만 byte code는 기계로부터 독립적이 될 수 있다. (jvm에 맞추면 되므로)

JIT(just intime implementation)
자바에서는 성능 향상을 위해 cpu에 맞는 byte code를 만들고 jvm에서 돌림.

####1.7.4 프리프로세서
자주 쓰는 코드,언어의 확장
확장 c-> c언어로 전처리
컴파일을 돌리기 전에 특정언어로 바꾸는 것(전처리기)

1.8 프로그래밍 환경

개발 툴들
UNIX,리눅스
VScode,

major 플밍 언어의 발전

그림2.1 족보
포트란(fortran)-> 계산 용도, 최초의 highlevle 언어
Algol
Cobol-> db를 다루는 일이 많아짐. 비즈니스 분야로 용도가 확장.

Lisp->

C,pascal-> 현대 언어의 기반, algol이 모태

smalltalk 80->객체 지향 언어의 효시

c++,java-> 객체지향 언어
python-> pascal계열에서 파생.

90s 웹 언어들

Ada->

2.1,2.2

포트란 이전의 하이레벨 언어에 대한 시도가 있었다.

2.3 IBM 704와 fortran

컴퓨터 역사의 전환점
하이레벨 언어의 탄생-> fortran

0개의 댓글