컴퓨터
프로그램
프로그래밍 언어
- 컴퓨터가 사람이 의도한 명령을 알아 들을 수 있게 쓰는 언어
프로그래밍 언어 분류
- ❗객체지향 유무, ❗자료형 유무, 고수준 저수준
객체
- 하나의 객체에 함수와 데이터로 코드를 묶을 수 있음
'❗top-down
- 하나의 프로젝트를 만들때 만들어야 되는 기능들을 팀원과 분할후 다시 합칠때 하나의 코드만 문제가 되도 프로그램이 돌아 가지 않음? 이건 다시 공부해야될듯 객채지향 프로그램언어가 아닐 경우 이런 식으로 한다는 건가?
❗bottom-up
- 객채지향 프로그램 언어일 경우 데이터와 함수를 한 코드 블록으로 묶어서 만들기 때문에 한 기능이 문제가 생겨도 다른 객채에 영향을 주지 않는 그런식?
언어에 자료형이 있는 이유?
- 자료형이 있는 언어라면 자료형이 없는 언어보다 코드가 정밀 해지기 때무에 안정적이다? 자료형이 없는 python 같은 경우에는 런타임때 datatype이 지정이 되기 때문에 이부분에서 에러가 발생하면 찾기 힘들다.
dynamic typing
- 자료형 유무
- 장점
- 단점
- 실행시간이 static typing보다 상대적으로 오래걸림, 런타임시 데이터 타입으로 인한 오류가 생기면 해당 데이터가 어떤 데이터 타입인지를 볼 수 없기 때문에 에러를 고치는데 오래 걸림,
static typing
- 자료형 유무
- 장점
- 자료구조로 인한 런타임시 에러 발생 방지, 프로그램 실행 속도 상대적으로 빠름, IOT에 사용되는 열악한 컴퓨터 부품의 한계를 최고의 성능으로 끌어 올릴 수 있음
- 단점
- 컴퓨터가 더 알아 먹기 쉽게 쓰는 언어인 만큼 하나하나 지정해 주어야 할 것이 많아 개발자로서 프로그램을 만드는 생산성이 떨어질 수도 있음. 한마디로 컴퓨터보다 개발자가 할 일이 더 많아 진다.
high level language and low level language
- 인간 친화적 아님 컴퓨터 친화적
- 인간이 고생 컴퓨터가 고생 차이라고봄
- 퀀텀컴퓨터 나오면 저수준 언어 안쓰려나?