본문 바로가기
IT 이것저것/Windows

프로그래밍 언어란 어떤것인지 쉽게 알아보자

by KaNonx카논 2023. 2. 3.
반응형

프로그래밍 언어란 어떤것인지 쉽게 알아보자

프로그래밍 언어는 사람들이 소프트웨어를 개발할 때 

컴퓨터에 무엇을 해야 할지 지시하는 언어입니다.

 

그것들은 다양한 형태로 제공되지만, 

대부분의 프로그래밍 언어들은 컴퓨터가 명령을 실행할 수 있도록 

인간이 읽을 수 있는 언어를 바이너리로 번역하는 통역사에게 의존합니다.


컴퓨터와 그 프로그램의 근간에는 보기만 해도

 머리가 아플 것 같은 이상하게 생긴 코드 줄들이 프로그래밍 언어이지요.

이번 포스팅에서는 프로그래밍 언어는 무엇이며 어떻게 작동하는지 알아볼까요?

 




프로그래밍 언어란?

간단히 말해, 프로그래밍 언어는 

컴퓨터 프로그래머가 장치와 "대화"하는 방식입니다.

 

이러한 언어 중 하나(수백 개)를 '말'하는 방법을 알고 있다면 

작업을 수행할 수 있는 프로그램을 만들 수 있습니다.

 

예를 들어 파일을 한 곳에서 다른 곳으로 이동하는 

스크립트처럼 매우 단순한 것부터 비디오 게임에서의 

3D 세계를 렌더링하는 것처럼 매우 복잡한 것까지 다양합니다.

 


바이너리란 무엇이며 컴퓨터는 왜 바이너리를 사용하는가?

프로그래밍 언어는 우리가 컴퓨터로 

복잡한 일들을 할 수 있는 이유입니다.

 

그 중심에서 컴퓨터는 여전히 0과 1이 컴퓨터의 기능과

방법을 결정하는 바이너리 시스템(기계어라고도 함)으로 동작하고 있습니다.

 

프로그래밍 언어를 이 핵심 위에 레이어라고 생각하면

인간은 0을 1로 전환했다가 다시 되돌릴 필요가 없습니다.

이것은 매우 좋은 점입니다.

 

만약 바이너리를 사용하여 프로그래밍을 해야 한다면 

간단한 스크립트조차 만드는 데 오랜 시간이 걸릴 것입니다.

 

프로그래밍 언어는 학습과 사용이 까다롭지만

그 핵심은 노동력을 절약하는 장치입니다.

 


프로그래밍 언어 수준

대략적으로 말하면 프로그래밍 언어는 

저급 언어와 고급 언어의 두 가지 범주로 나뉩니다.

 

낮은 수준의 언어는 기계와 "가까이" 있기 때문에 

기계와 직접 대화할 수 있다고 불립니다.

여기에는 기계어와 어셈블리 언어도 포함됩니다.

 

이 언어들은 바이너리 언어에서 조금 벗어난 프로그래밍 언어입니다.

높은 수준의 언어는 낮은 수준의 언어보다 한 단계 위입니다.

기계에서 멀리 떨어져 있지만 사람이 읽을 수 있습니다.

 

이 경우 "읽을 수 있다"는 것은 해당 언어를 알고 있으면

 코드 몇 줄을 보고 무슨 일이 일어나고 있는지 파악할 수 있다는 것을 의미합니다.

이 조작은 반대로도 동작합니다.

 

즉, 기계에서 실행할 명령어를 입력할 수 있습니다.


프로그래밍 언어 통역 음성

그렇긴 하지만 프로그래밍은 그렇게 직접적이지 않다는 점에 유의해야 합니다.

 

고급 언어로 명령을 입력할 때 장치에 작업을 지시하지 않습니다.

대신 명령어를 바이너리로 변환하는 언어의 일부인 

이른바 인터프리터와 대화합니다.

 

당신이 원하는 것을 통역사에게 말하면, 

통역사는 당신이 말한 것을 컴퓨터에게 기계어로 알려줍니다.

통역사는 당신과 기계 사이의 갭을 메우고, 

모든 언어에는 다른 통역사가 있습니다.

 

어셈블리 언어는 명령어 해석도 필요하기 때문에 

조금 이상하지만 명령어가 "순수한" 기계어에 가깝기 때문에 

완전한 번역이 필요하지 않기 때문에 인터프리터 대신 어셈블러를 사용합니다.

통역사는 까다로운 기술자입니다.

컴퓨터에 0과 1의 이동 방법을 지시하기 위해서는 

특정한 방법으로 대화해야 합니다.

 

"파란 상자를 오른쪽 위로 이동"이라고 말하는 대신 

통역사가 이해하는 코드를 입력해야 합니다. 

이 코드는 프로그래밍 언어에 따라 다릅니다.

 

그런 다음 통역사는 이 입력을 받아 컴퓨터에 무엇을 해야 하는지 지시합니다.

 


No-Code란 무엇인가, 테크놀로지의 미래인가?

자연어는 컴퓨터나 인터프리터가 이해하기 어렵기 때문에 

코드 없는 혁명으로 인해 변화할 수 있는 프로그래밍 언어, 

즉 인터프리터와 인간이 모두 이해할 수 있는 언어를 사용합니다.

 

그런 다음 통역사는 작은 데이지 체인을 만들면서 그것을 기계어로 중계합니다.


프로그래밍 언어의 구조

"언어"라는 단어에 대한 선택도 우연히 이루어진 것이 아닙니다.

 인간의 언어에서처럼 프로그래밍 언어에도 

모든 것이 탈선하는 것을 막는 내부 규칙이 있습니다.

프로그래밍 언어는 인간의 언어에서처럼 단어 순서와 

단어 사용에 관한 구문, 규칙 세트를 가질 것입니다.

 

예를 들어, 영어로 당신은 "게리가 프레드에게 책을 주었다"고 말할 수 있습니다.

이 문장에서 당신은 누가 누구에게 무엇을 줬는지 정확히 알고 있지요;

 

단어를 바꾸면 당신은 다른 문장을 얻을 수 있습니다:

"프레드는 게리에게 책을 주었다."그래도 말이 되긴 하지만,

"게리 프레드가 준 책"이라고 하면 문제가 생깁니다.


프로그래밍 언어도 다르지 않습니다. 

올바른 비트가 문장(일반적으로 "선"이라고 함)에 

적합한 위치에 배치되어야 의미가 있습니다.

 

단지 프로그래밍 언어들은 자신을 표현하기 위해 다른 방법을 사용합니다.


프로그래밍 언어를 실행하다

예를 들어, 많은 프로그래밍 언어들이 동사를 사용합니다.

일반적으로 가장 배우기 쉬운 언어 중 하나로 간주되는 Python에서는

다음을 통해 알 수 있습니다.


print("헬로 월드")


이 경우 "헬로 월드"라는 단어가 화면에 나타납니다.

당연히 명령어는 그것보다 훨씬 더 복잡해질 수 있습니다.

 

대부분의 언어에는 모든 종류의 동작을 수행하는 데 사용할 수 있는 방대한 동사 세트가 있습니다.

 


Python이란?

물론 모든 것이 한 눈에 이 정도로 말이 되는 것은 아닙니다.

여러분께서 마주치게 될 대부분의 코드에는 일상 언어에서 

사용하지 않는 엄청난 양의 기호와 구두점이 포함되어 있습니다.

 

하지만, 일단 그들을 이해하면, 그들은 당신이 생각하는 것보다 덜 이상하게 느껴질 겁니다.

인간의 언어에서, 우리는 다른 것들을 나타내기 위해 

다른 단어들을 사용할 수 있습니다.

 

예를 들어, 영어에서 우리는 "그것"으로 사물을 나타내고

 "그" 또는 "그"로 사람을 나타냅니다.

 

이걸 바꾸면 한 문장이 무너질 거예요.프로그래밍 언어도 크게 다르지 않습니다.

대괄호와 괄호는 다른 동작 클래스를 나타냅니다.

바꿔치기하면 문장이 무너진다는 것이지요.

Python의 괄호는 Lisp와 전혀 다른 기능을 합니다.

이것은 C와는 다릅니다.

 

인간의 언어에서와 같이, 용도와 의미가 바뀔 수 있고, 

어떤 언어들은 다른 언어들보다 특정한 것에 더 능숙하게 만들 수 있습니다.

 


어떤 프로그래밍 언어를 배워야 합니까?

그렇다면 어떤 언어를 배우는 것이 가장 좋을까요?

각 언어가 무엇을 할 수 있는지, 무엇을 할 수 없는지, 

어떤 것이 최선인지에 대해 서로 다른 언어의 팬들 사이에 많은 논쟁이 있습니다.

 

하지만 결론은 어떤 언어가 가장 좋은지는 실제로 문제의 프로그래머에 달려있다는 것입니다.

인간의 언어와 마찬가지로 여러분의 의견은 여러분의 

사고 패턴과 자연스럽게 이해되는 것에 의해 영향을 받습니다.

만약 당신이 기계와 "대화"할 수 있고 당신이 원하는 것을 할 수 있는 

몇 안 되는 사람이 되고 싶다면, 배우기 쉽다는 평판을 받고 있는 Python을 확인해 보세요.

 

더 많은 과제를 원한다면 대부분의 운영 체제의 기반인 C를 확인할 수 있습니다.

어느 쪽을 선택하든 프로그래머처럼 생각하기 시작하는 것은 매우 즐겁습니다.

 

 

 

-

반응형

댓글