컴퓨터 프로그래밍
간단한 이해
* 프로그램 : 지시사항이 나열된 순서 / 예외가 나올수 있다/ 만약에~
* 컴퓨터 프로그램 : 컴퓨터에서 실행할 특정 작업을 수행사는 일련의 작업 (논리/ 구조)
* 코딩 : 프로그램 언어의 명령어를 사용하여 프로그램을 작성하는 것 (구체화)
Low level Language VS High level Language
* 인간이 이해하기 쉬울수록 High level Language
* 기계가 이해하기 쉬울수록 Low level Language
- 성능에 따라 구분하는 것이 아님.
해석 방법에 따른 언어의 분류
* 컴파일러 (Compiler Language)
- 소스코드를 미리 번역해두고, 필요히 즉시 실행 / 번역에 가까움
장점 : 문법, 데이터 형식의 오류를 미리 감지할수 있다. 안정성이 높다.
단점 : 코드 수정시 컴파일을 다시 해야하여 개발시간이 오래걸린다.
* 인터프리터 (Interpriter Language)
- 소스코드 실행시 즉시 차례대로 실행 / 통역에 가까움
장점 : 빠르다
단점 : 문법/데이터 형식의 오류가 있을경우 오류가 날수있다. 안정성 떨어짐.
관리형 언어
- 개발자의 책임하에 메모리 할당/ 사용 / 해제를 다 해줘야함.
- C/ C++
비관리형 언어
- 개발자의 메모리 직접 접근 차단. 관리자를 통해 자동 할당 및 제거
- java,
* 정적 타입 <- 데이터의 타입 C/ C++/JAVA
- 한번 형식을 정하면 변경할 수 없음.
ex) int a = 2021; -> 정수
int a = 3.14; -> 실수 에러발생. OK
* 동적 타입 Python / javascript
- 상황에 따라 바뀜 / 대신 상황에 따라 불안정할 수 있음.
ex) a = 2021 - > 정수 ok
a = 3.14 - > 실수 ok
a = "안녕" - > 문자열 ok
프로그래밍의 패러다임
* 절차적 언어
- 알고리즘, 로직에 의거한 단계적 멍령으로 문제 해결을 하는 방식
* 객체 지향 언어
- 메서드를 한데 묶은 객체를 만들고 객체를 조립하는 방식
* 선언형 언어
- 특적 문제를 수행하는 절차는 관계없이, 결과만 명시
* 함수형 언어
- 컴퓨터의 입장이 아닌 수학적 입장.
'JAVA' 카테고리의 다른 글
JAVA 기반 Github 세팅 / 업로드 (0) | 2021.08.11 |
---|---|
JAVA 변수/자료형/식별자 (0) | 2021.08.11 |
JAVA 기초 / IDE(eclipse) 설치 (0) | 2021.08.11 |
JAVA 주소록 관리 프로그램 개선 (0) | 2021.08.10 |
JAVA 주소록 관리 프로그램 (0) | 2021.08.02 |