Understading the Digital World - Brian W. Kernighan
1일 1로그 100일 완성 IT지식 - 브라이언 W. 커니핸
041. 자바스크립트와 파이썬
javascript & Python : 초보자 수준에서 배우기 쉽고, 더 큰 프로그램으로 확장하기 용이하며, 폭넓게 적용 가능하다.
Javascript
- 장점
1.모든 브라우저에 포함되어있어, 소프트웨어를 별도로 다운로드하지 않아도 됨
2.언어 자체가 간단하고, 비교적 적은 경험으로 좋은 코드를 작성 할 수 있다.
3.트위터, 페이스북, 아마존 등의 웹서비스에서 제공하는 API를 위한 언어이다.
- 단점
1.표준화 되어있지 않아서 의도와 다른 동작을 일으킬 때도 있다.
2.각기 다른 브라우저에서 다른 방식으로 작동하기도 한다.
Python
- 매우 폭넓은 응용분야에 활용 가능
- 프로그래밍 입문 수업, 데이터 과학, 머신러닝에 초점
- 보통 소프트웨어가 필요하지만, 최근엔 파이썬을 웹에서 실행해주는 웹사이트도 있음.
- 파이썬을 이용하여 습득한 프로그래밍 지식은 다른 언어를 배울 때 쉽게 배울 수 있다.
042. 프로그래밍 언어의 주요 개념
프로그래밍 언어는 계산을 일련의 단계로 풀어서 상세히 설명하기 위한 표기법.
언어 구문(Syntax)과 언어 의미(Sementics)로 구성된다.
- 구문 규칙 (Syntax)
문법적으로 무엇이 맞고 틀리는지 정의하는 규칙. 문법은 정확하게 표현해야 함.
구문은 변수 이름에서 세미콜론에 이르기까지 모든 것이 실제 구조나 형식이다.
var foo = "go'
- 의미 체계 (Semantics)
해당 언어로 표현할 수 있는 모든 것에 대해 정확히 정의된 의미.
의미는 코드가 의미하는 바, 의사 코드로 설명 할 수 있는 것.
if(player = win){
print "You Lose"
}
- 구문(sytax)과 의미(semantics)의 차이
- 구문 : 문장이 언어의 문법에 유효한지 여부에만 관련된 개념.
- 의미 : 문장이 유효한 의미를 가지고 있는지 여부에 관한 것.
언어의 모호성
이론상으로는 언어의 모호함은 없어야 하지만, 단어의 정의에는 모호성이 있고, 시간이 흐르면서 언어가 변하기도 한다.
예를 들어, 자바스크립트의 구현은 브라우저마다 다르고, 파이썬에는 두가지 버전이 있어서 호환의 차이가 있다.
프로그래밍 언어를 바라보는 세가지 측면
- 언어 그 자체
- 컴퓨터에 산술 연산을 수행하고, 조건을 검사하고, 계산을 반복하라고 지시하는 문장.
- 코드 라이브러리
- 코드를 만들 때 사용할 수 있는 사전 제작 부품같은 것. (언어 개발사가 아닌 제 3자가 작성)
- 프로그램 실행환경에 접근하는 기능
- 자바스크립트는 브라우저를 통해 웹페이지에 접근, 파이썬은 컴퓨터상의 파일시스템에 접근할 수 있음.