프로그래밍 언어의 차이

Updated:

🔷 소스코드, 실행파일 컴파일러, 인터프리터

  • 인간이 익숙한 자영 언어는 컴퓨터가 이해할 수 없고, 컴퓨터가 다룰 수 있는 기계어는 인간이 이해하기 어렵기 때문에 프로그래밍 언어가 사용된다

  • 프로그래밍 언어로 쓰여진 소스 코드를 컴퓨터가 실행하는 방법으로 컴파일러와 인터프리터라는 두가지 방식이 있다

🔶 프로그래밍에 사용되는 파일

인간이 직접 기계어를 사용하기는 어려우므로, 인간이 일상에서 사용하는 자연어보다 기계어로 변환하기 쉬운 프로그래밍 언어를 사용합니다. 소프트웨어 개발은 프로그래밍 언어의 문법에 따라 소스코드를 작성하여 이루어집니다

프로그래밍 언어로 쓰인 소스 코드를 컴퓨터가 처리할 수 있는 기계어 프로그램으로 변환해야 합니다. 이 프로그램의 파일 형식을 실행 파일 이라고 부릅니다

🔶 프로그램으로 변환하는 방법

소스 코드를 프로그램으로 변환 할 때, Compiler, Interpreter 라는 두 가지 방법이 있습니다

Compiler : 사전에 코드를 프로그램으로 일괄 변환해 두었다가 실행 시 프로그램을 처리하는 방법입니다. 문서를 번역하는 것처럼 사전에 변환해 놓음으로써 실행 시 빠르게 처리할 수 있습니다

Interpreter : 실행하면서 소스 코드를 변환하는 방법으로, 통역하는 것처엄 말하는 사람 옆에서 한 문장씩 번역한 말을 전달하는 이미지 입니다. 처리에 시간이 걸리지만, 예상한 대로 동작하지 않을 때 조금 수정하고 다시 실행하는 작업을 쉽게 할 수 있습니다

image

🔷 절차형, 객체 지향 형 프로그래밍

  • 절차형은 오래 전부터 사용되어 온 언어지만, 최근에는 객체 지향 언어가 많아 지고 있다

  • 객체 지향에서는 데이터와 조작을 통합하여 다루므로, 보수성이 높아지고 있다

🔶 처리 순서를 고려하는 절차형

프로그래밍 언어는 그 언어가 설계된 ‘사고방식’에 따라 크게 분류할 수 있는데, 이것을 프로그래밍 패러다임 이라고 합니다. 절차형은 분류를 처리의 절차를 생각하는 방법이라고 할 수 있습니다

절파형 프로그래밍 언어에서는 실행할 일련의 처리를 묶어 절차를 정의하고, 이 절차를 호출하면서 처리를 진행 합니다

image

🔶 데이터와 조작을 하나로 묶는 객체지향

호출 순서를 틀리거나 필요한 순서가 누락되거나 데이터가 수정되는 등의 오류가 발생 했을때 절차형에서는 전체 프로그램 에 영향을 미칠 수 있는 단점이 있는데, 이를 보안 하고자, 객체 지향 이라는 개념이 등장했습니다.

데이터와 조작을 하나로 묶은 것을 객체 (오브젝트) 라고 하는데, 미리 준비한 방법을 통해서만 객체 내부에 잇는 데이터에 액세스 할 수 있습니다

image

🔷 선언형, 함수형 프로그래밍

  • 절차형, 객체 지향 이외에도 함수형이나 논리형으로 불리는 언어가 있다

  • 함수형 언어에서는 입력이 결정되면 같튼 출력을 얻을 수 있다는 것 외에 함수도 데이터와 동일하게 취급한다는 특징이 있다

🔶 상태를 변화시키지 않는 함수형

절차형과 객체 지향으로 개념은 다르지만 모두 컴퓨터에 순서 를 지시하므로 명령형 프로그래밍 언어로 분류할 수 있습니다 -> 어떻게 하는지에 주목

무엇인가 에 주목하는 선언형 프로그래밍 언어로 불리는 분류가 잇습니다. 선언형 프로그래밍은 컴퓨터에 정의를 전달하고 컴퓨터는 그 정의를 해석해서 동작합니다

선언형 프로그래밍 언어 중에서도 자주 사용되는 것으로 함수형 프로그래밍 언어가 있습니다. 함수의 조합으로 기술해 나가는 스타일을 가리키는 것이 일반적입니다.

함수형 언어는 상태를 사용ㄴ하지 않는 함수를 정의합니다. 상태에 관계없이 같은 입력에 대해서는 항상 같은 결과를 얻을 수 있기 때문에 테이트가 용이합니다 함수도 데이터롤 취급할 수 있으므로, 함수에 데이터로서 함수를 전달함으로써 함수의 정의와 적용에 의해 처리를 표현하고 통일된 스타일을 실현할 수 있습니다.

image

🔶 진위를 중심으로 생각하는 논리형

선언형 중에는 논리형이라고 불리는 프로그래밍 언어도 있습니다. 논리형 프로그래밍 언어는 논리식을 사용하여 관계를 정의 합니다. 참이나 거짓중의 하나의 값만 가집니다. 조건을 만족시키느 ㄴ것을 찾는다는 사고방식은 완전히 새로운 관점이지만, 처리 속도 문제 등도 있어 현재는 실무에서 잘 사용하지 않습니다.

🔷 스크립트언어, 마크업 언어

  • 작은 프로그램을 실행 할 때는 스크립트 언어를 편리하게 사용할 수 있다는

  • word 나 excel 등에서 조작을 기록하는 메크로가 존재한다. 마우스로 조작하여 기록, 실행 할 수 있다

  • HTML 과 같은 마크업 언어에서는 문서의 구조를 기술하여 컴퓨터에 지시 할 수 있다

🔶 즉시 실행 할 수 있는 스크립트 언어

작은 크기의 프로그램을 손쉽게 작성하기 위해 사용되는 프로그래밍 언어를 스트립트 언어 라고합니다

주로 JS, PHP, Python 등도 스크립트 언어로 분류됩니다

일반인에게 배포하는 프로그램과는 달리, 개발자 자신의 편리를 위해서 만드는 작은 프로그램이나 웹브라우저로 접속하는 웹앱과 같은 프로그램에서 사용됩니다

🔶 구조에 의미를 부여하는 마크업 언어

바르게 쓰인 문장은 사람이 보면 의미를 알 수 있지만, 컴퓨터는 그 의미를 이해하기 어렵습니다.

제목이나 각조 등 문장 구조를 컴퓨터에 알려주는 언어로서 마크업 언어 가 있습니다.

웹페이지 표현에 사용되느 HTML 에서는 태그라고 불리는 기호로 요소를 감싸는 방식으로 기술하여, 링크나 이미지 등을 나타냅니다.

🔷 표준 입력, 표준 출력, 오류 출력

  • 일반적으로 콘솔에서의 키보드 입력이 표준 입력으로, 디스플레이(콘솔)로의 출력이 표준 출력에 할당되어 있다

  • 리다이렉트나 파이프를 사용해 표준 입력이나 표준 출력을 바꿀 수 있다

🔶 입력과 출력이 프로그램의 기본

입력 여부에 관계없이 같은 결과를 얻을 수 있다면 프로그램을 만들 필요가 없슴니다. 출력을 얻을 수 없다면 무엇 때문에 입력하는지 알 수 없습니다.

프린터에 인쇄하는 프로그램의 경우는 입력은 파일이고, 출력은 프린터의 인쇄 입니다. 복수의 프로그램을 연계해서 작동하는 경우에는 다른 프로그램의 출력 결과를 입력으로 하고, 처리 결과를 다시 다른 프로그램에 넘겨주는 것도 있습니다.

🔶 오류는 표준 오류로 출력한다

표준 입력과 표준 출력만으로는 오류가 생겼을 때 오류 메시지가 표준 출력으로 나가버립니다. 그래서, 오류 출력 용도로 표준 오류(STDERR) 가 준비되어 있습니다.

오류가 있을 경우에 다른 파일 등으로 출력을 지정할 수 있습니다.


Reference

그림으로 배우는 프로그래밍 구조 - https://book.jacobko.info/#/book/8931465599

Categories:

Updated:

Leave a comment