프로그래밍 언어란?

게시 됨: 2022-10-20
프로그래밍 언어의 라인을 보여주는 컴퓨터 화면의 근접 촬영.
빈티지 톤/Shutterstock.com
프로그래밍 언어는 사람들이 소프트웨어를 개발할 때 컴퓨터에게 무엇을 하라고 지시하는 데 사용하는 언어입니다. 다양한 형태로 제공되지만 대부분의 프로그래밍 언어는 컴퓨터가 명령을 실행할 수 있도록 사람이 읽을 수 있는 언어를 바이너리로 변환하는 인터프리터에 의존합니다.

컴퓨터와 컴퓨터 프로그램의 기초에는 보기만 해도 머리가 아플 것 같은 이상하게 보이는 코드 줄이 있는 프로그래밍 언어가 있습니다. 그러나 프로그래밍 언어는 무엇이며 어떻게 작동합니까?

프로그래밍 언어란?

간단히 말해서, 프로그래밍 언어는 컴퓨터 프로그래머가 장치와 "대화"하는 방식입니다. 이러한 언어 중 하나를 "말하는" 방법을 알고 있고 수백 가지가 있다면 작업을 수행할 수 있는 프로그램을 만들 수 있습니다. 파일을 한 곳에서 다른 곳으로 이동하는 스크립트와 같은 매우 단순한 것부터 비디오 게임에서 3D 세계를 렌더링하는 것과 같은 매우 복잡한 것까지 다양합니다.

바이너리란 무엇이며 컴퓨터에서 바이너리를 사용하는 이유는 무엇입니까?
관련 바이너리란 무엇이며 컴퓨터에서 바이너리를 사용하는 이유는 무엇입니까?

프로그래밍 언어는 우리가 컴퓨터로 복잡한 일을 할 수 있는 이유입니다. 기본적으로 컴퓨터는 여전히 0과 1이 컴퓨터가 수행하는 작업과 방법을 결정하는 이진 시스템(기계어라고도 함)에서 작동합니다. 프로그래밍 언어를 이 코어 위의 레이어로 생각할 수 있으므로 인간은 0을 1로 전환하고 다시 전환할 필요가 없습니다.

이것은 매우 좋은 일입니다. 여전히 바이너리를 사용하여 프로그래밍해야 한다면 간단한 스크립트를 만드는 데도 오랜 시간이 걸릴 것입니다. 올바른 궁전에서 1과 0을 모두 얻으려면 많은 사람들이 필요하기 때문에 고급 프로그램은 결코 만들어지지 않을 것입니다. 프로그래밍 언어는 배우고 사용하기 까다롭지만 핵심에는 노동력을 절약할 수 있는 장치가 있습니다.

언어 수준

대략적으로 말하면 프로그래밍 언어는 저수준 언어와 고급 언어의 두 가지 범주로 나뉩니다. 저수준 언어는 기계에 "가까이" 있기 때문에 기계와 직접 말할 수 있다고 합니다. 여기에는 바이너리에서 약간만 제거된 프로그래밍 언어인 기계어 및 어셈블리 언어가 포함됩니다.

고급 언어는 저급 언어보다 한 단계 위입니다. 기계에서 멀리 떨어져 있지만 사람이 읽을 수 있습니다. 이 경우 "가독성"은 해당 언어를 알고 있는 경우 몇 줄의 코드를 보고 무슨 일이 일어나는지 파악할 수 있음을 의미합니다. 이것은 다른 방법으로도 작동합니다. 그러면 기계에서 실행할 명령을 입력할 수 있습니다.

통역된 연설

즉, 프로그래밍은 그렇게 직접적이지 않다는 점에 유의해야 합니다. 고급 언어로 명령을 입력할 때 장치에 무엇을 하라고 지시하는 것이 아닙니다. 대신, 명령을 이진법으로 바꾸는 언어의 일부인 프로그램인 인터프리터와 이야기하고 있습니다. 통역사에게 원하는 것을 말하면 통역사는 컴퓨터에게 여러분이 말한 것을 기계어로 알려줍니다.

통역사는 당신과 기계 사이의 간극을 메우고 모든 언어에는 다른 통역사가 있습니다. 어셈블리 언어는 명령도 해석해야 하기 때문에 약간 이상하지만 명령이 "순수한" 기계 언어와 더 가깝고 전체 번역이 필요하지 않기 때문에 인터프리터 대신 어셈블러라는 것을 사용합니다.

인터프리터는 까다로운 기술입니다. 인터프리터는 컴퓨터에 0과 1을 이동하는 방법을 알려주는 작업을 수행하기 위해 특정 방식으로 말을 해야 합니다. "파란색 상자를 오른쪽 상단으로 이동"이라고 말하는 대신 인터프리터가 이해할 수 있는 코드 줄을 입력해야 합니다. 이는 프로그래밍 언어에 따라 다릅니다. 그러면 인터프리터는 이 입력을 받아 컴퓨터에 무엇을 해야 하는지 알려줍니다.

코드 없음이란 무엇이며 기술의 미래입니까?
관련 코드 없음이란 무엇이며 기술의 미래입니까?

자연어는 컴퓨터와 인터프리터가 이해하기 너무 어렵기 때문에(코드 없는 혁명으로 인해 변경될 수 있음) 우리는 인터프리터와 인간 모두가 이해할 수 있는 언어인 프로그래밍 언어를 사용합니다. 그런 다음 인터프리터는 이를 기계어로 중계하여 작은 데이지 체인을 만듭니다.

프로그래밍 언어의 작동 방식

"언어"라는 단어를 선택한 것도 우연이 아닙니다. 인간의 언어와 마찬가지로 프로그래밍 언어에는 모든 것이 잘못되지 않도록 하는 내부 규칙이 있습니다.

프로그래밍 언어에는 인간의 언어와 마찬가지로 구문, 단어 순서 및 단어 사용에 관한 규칙 집합이 있습니다. 예를 들어, 영어로 "Gary가 Fred에게 책을 주었습니다."라고 말할 수 있습니다. 이 문장에서 당신은 누가 무엇을 누구에게 주었는지 정확히 알 수 있습니다. 단어를 바꾸면 다른 문장이 나옵니다. "Fred는 Gary에게 책을 주었습니다." 그것은 여전히 ​​​​이치에 맞지만 "Gary Fred가 준 책"이라고 말하면 우리 손에 문제가 있습니다.

프로그래밍 언어도 다르지 않습니다. 문장(보통 "라인"이라고 함)이 말이 되기 위해서는 올바른 비트가 올바른 위치에 있어야 합니다. 프로그래밍 언어는 자신을 표현하는 데 다른 방법을 사용합니다.

만들기

예를 들어 많은 프로그래밍 언어는 동사를 사용합니다. 일반적으로 배우기 가장 쉬운 언어 중 하나로 간주되는 Python에서는 한 줄의 텍스트를 print 하도록 지시할 수 있습니다.

 print("안녕하세요, 세상")

이 경우 "Hello, world"라는 단어가 화면에 나타납니다. 당연히 명령은 그보다 훨씬 더 복잡해질 수 있습니다. 대부분의 언어에는 모든 방식의 동작을 수행하는 데 사용할 수 있는 방대한 동사 집합이 있습니다.

파이썬이란 무엇입니까?
관련 파이썬이란 무엇입니까?

물론 모든 것이 한 눈에 제대로 이해되는 것은 아닙니다. 대부분의 코드에는 일상적인 연설에서 사용하지 않을 엄청난 양의 기호와 구두점이 있습니다. 그러나 일단 주위를 둘러보면 생각보다 덜 이상합니다.

인간의 언어에서 우리는 다른 것을 나타내기 위해 다른 단어를 사용할 수 있습니다. 예를 들어, 영어에서는 사물을 "it"으로, 사람을 "she" 또는 "he"로 표시합니다. 이것을 바꾸면 문장이 무너집니다. 프로그래밍 언어는 크게 다르지 않습니다. 대괄호와 괄호는 다른 클래스의 동작을 나타냅니다. 그것들을 바꾸면 문장이 무너집니다.

당연히 이러한 사항은 언어 간에도 변경될 수 있습니다. Python의 괄호는 Lisp에서 수행하는 것과 완전히 다른 작업을 수행합니다. 이는 C와 다시 다릅니다. 인간 언어에서와 마찬가지로 용도와 의미가 바뀔 수 있으므로 일부 언어는 특정 기능을 더 잘할 수 있습니다. 다른 사람보다.

어떤 프로그래밍 언어를 배워야 할까요?

그렇다면 학습을 시작하기에 가장 좋은 언어는 무엇입니까? 각 언어가 할 수 있는 것과 할 수 없는 것과 가장 좋은 것에 대해 서로 다른 언어의 팬들 사이 에 많은 논쟁이 있습니다. 그러나 결론은 어떤 언어가 가장 좋은지는 문제의 프로그래머에 달려 있다는 것입니다. 인간의 언어와 마찬가지로, 당신의 의견은 당신의 사고 패턴과 자연스럽게 이해되는 것에 의해 영향을 받습니다.

기계와 "대화"하고 원하는 대로 할 수 있는 몇 안 되는 사람 중 하나가 되고 싶다면 배우기 쉽다는 평판이 있는 Python을 확인할 수 있습니다. 더 많은 도전을 원한다면 대부분의 운영 체제의 기초인 C를 확인할 수 있습니다. 어느 쪽을 선택하든 프로그래머처럼 생각하기 시작하는 것은 매우 재미있습니다.

관련: 이 멋진 앱과 웹사이트로 코딩하는 법 배우기