컴퓨터는 c언어를 어떻게 알아들어??

b396833b 2021.02.26 220

파이썬 ,c++이런 프로그램은 어떻게 만든거야?? 설명이 이상하긴 한데  예를 들면

 

난 아랍어를 전혀 모르는데 아랍인이 나한테 뭐라뭐라 하면 알수가 없잖아 

 

근데 뭘했더니 알아들을수가 있더라 에서 

 

뭘 했더니는 대체 어떻게 한걸까?

 

컴퓨터가 지능이 있을리도 없고 오른쪽이란 개념을 어떻게 집어 넣을수 있는걸까 너무 궁금함  아랍어로 아무리 오른쪽이라 말해도 난 그게 뭔지 모를거 아녀 

 

 

설명 참 답답하게해서 미안해유 컴공과 형님덜

20개의 댓글

948dca2d
2021.02.26

기계어로 번역해서 알아들어

0
0370b539
2021.02.26

대충 구글 번역기에 작성한다고 생각하셈

프로그래밍 하는 툴이 번역기고 거기다가 한글로 쌸라쌸라하면 그 아래 번역된거 나오잖음

그렇게 컴퓨터 언어로 변환해서 쓰는거

0
152aafc4
2021.02.26

몇단계로 번역을 거칩니다요

0
5629e16d
2021.02.26

아랍인이랑 나 사이에 번역해주는 사람이 있다고 생각하면 됨. 그게 컴파일러임

0
4ef10d71
2021.02.26

정말 쉽게 말하면 c언어는 번역기라고 생각하면됨

번역기에 오른쪽이라고 입력하면 아랍어로 오른쪽이라는 뜻의 단어가 나오잖아

이거처럼 니가 c언어로 오른쪽이라고 입력하면 캄퓨터가 알아들을수 있는 기계어라는걸로 번역해서 입력해주는거임

0
4ef10d71
2021.02.26
@4ef10d71

니가 궁금해하는 뭘했더니는 뭘한게 아니라 아랍어를 잘하는사람이 오른쪽이라고 입력하면 아랍어의 오른쪽을 의미하는 단어가 나오게 약속을 해놓은 거임 번역기에 설정을 하는거처럼 말이야

0
b396833b
2021.02.26
@4ef10d71

여기까진 이해가능 그럼 번역기라고 한다면 한국어로 번역이 될꺼 아니야 그럼 그 한국어는 누가 내 머릿속에 오른쪽은 ~다 라고 설정해 놓은거야??

 

답답하지 ㅠㅠ 컴이라곤 롤밖에 몰라서 그래ㅠㅠ

0
4ef10d71
2021.02.26
@b396833b

ㅇㅇ 다 설정해놓은거지 그래서 코딩에 규칙이 있는거임 다 설정해놓은거니까

0
24c4af1a
2021.02.26

프로그래밍 언어는 컴퓨터보다 먼저나옴

옛날에 기계로 수학식을 빠르게 풀지는 취지에서 나왔던걸로 아는데 이걸 전자부품이랑 연결하다보니 켜졌다(1) 꺼졌다(0) 밖에 못 알아들으니 2진수로밖에 짤 수 없었던거지

 

이 구조랑 알고리즘들이 쌓여서 현재의 프로그래밍 언어가 된거고

0
b396833b
2021.02.26
@24c4af1a

10의 조합으로 컴퓨터가 오른쪽이 오른쪽이란 개념을 가지게 된다는게 제 아둔한 머리론 이해가 안갖니다...ㅠ

0
316bd1c7
2021.02.26
@b396833b

스위치가 있잖아 1이 켜진 상태고 0이 꺼진 상태라고 규정한거임

0
316bd1c7
2021.02.26
@316bd1c7

여기서 발전시켜서 2진수 -> 10진수 -> 16진수로 가는거고

0
5629e16d
2021.02.26
@b396833b

컴퓨터가 오른쪽이란 개념을 갖고 동작하는게 아니라 프로그래머가 논리적으로 오른쪽 왼쪽을 구분해서 구현하는거임.

0
c6b5ad28
2021.02.26

10001111101110110101010101010110010110110100000101

0
7b84b2b7
2021.02.26

c언어가 어셈블리어로 바뀌는과정...

그거는 4학년때 컴파일러 수업 들으면 알 수 잇습니다

 

아니 그래서 0이랑 1을 어케 컴퓨터가 받아들이냐고?

그거는 전자과로 전과하십시오

0
46b42b53
2021.02.26

내가 컴퓨터 언어학 개론 조교 해봐서 대충 설명해줌

 

먼저

int a = 10;

int b = 10;

a = a + b;

라는 코드가 있다 치자

 

그러면 어휘분석기 (lexer)가 저 코드를 토큰화 시킴

[identifier(int), identifier(a), operator(=), integer(10), operator(;), identifier(int), identifier(b), operator(=), integer(10), operator(;), identifier(a), operator(=), identifier(a), operator(+), identifier(b), operator(;)]

이런식으로 토큰 리스트가 만들어지는거야

 

이걸가지고 구문분석기(parser)는 AST 트리구조로 바꿔버림

Source

ㄴDeclaration(Type(int), Variable(a), Integer(10))

ㄴDeclaration(Type(int), Variable(b), Integer(10))

ㄴAssignment(Variable(a), BinaryOp(+, a, b))

대충 이렇게 만들어짐

 

여기까지 만들어졌으면 이제 더 낮은 언어로 1대1 번역하기가 쉽겠지

 

어셈블리어로 번역한다고 하면

mov r0 10 // 레지스터 0에 10 저장

mov r1 10 // 레지스터 1에 10저장

add r0 r0 r1 //레지스터 0에 둘 더한거 저장

 

오랜만에 써서 까먹었는데 대충 이렇게 되겠지

 

어셈블리어는 기계어랑 1대1 대응이 돼서 저 코드가

 

0001111 00000000 00000110

0001111 00000001 00000110

0001101 00000000 00000000 00000001

 

이런식으로 바뀌고 컴퓨터 회로가 저걸 보면서 처리를 할 수 있게 되는거야

1
b396833b
2021.02.26
@46b42b53
3
bdd43ecc
2021.02.26
@b396833b

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

0
2a030ee4
2021.02.26

쉽게 말해서 전세계 모든 컴퓨터는 0과 1로만 되어있는 컴퓨터 언어는 다 알아들어. 이걸 기계어라고 함

근데 기계어는 사람이 읽을수 없기 때문에 예를들어 text = 00100110 이런식으로 번역어를 만들어 놓는거야

그걸 프로그래밍 언어라고 하는거고 모든 프로그래밍 언어는 마지막에 컴파일이라는 기계어 번역 과정이 반드시 들어감

그래서 C언어와 C언어 컴파일러는 항상 세트로 붙어있음

C언어로 코드를 다 짜면 마지막에 text = 00100110 이렇게 C언어 컴파일러가 기계어로 번역해주고 그러면 기계는 그 프로그램을 돌릴수 있는거임

 

인간의 언어는 영어도 전세계 보급률이 40%도 안되지만 컴퓨터의 기계어는 전세계 보급률이 100%인거임

0
b396833b
2021.02.26
@2a030ee4
0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 날짜 조회 수
321922 남친이랑 할 때 오줌이 너무 많이 나오는게 고민 10 0131da47 14 분 전 167
321921 하루에 보충제 3번 먹는거 에바임? 2 af8d69c4 20 분 전 24
321920 공무원 최종면접 탈락했었는데 9 230efba5 21 분 전 74
321919 게이밍 의자 추천좀요 5 96af1a24 21 분 전 16
321918 탄탄어플 써보고 있는데 7 5ea00f73 48 분 전 135
321917 이사가면 주소변경 어디함?? 3 96af1a24 58 분 전 44
321916 회사 내일까지 근무하기로 했는데 d474b1a7 1 시간 전 87
321915 경리가 수다떨때 자꾸 질문함 12 cb1e6dfe 1 시간 전 320
321914 여자랑 하룻밤 18 04d35ce5 1 시간 전 426
321913 다른 지역으로 이사가면 행복할까? 3 d8da7711 1 시간 전 56
321912 여자 몸무게 세자릿수야 25 907ad0fd 1 시간 전 297
321911 어제 여자친구랑 저녁에 잠깐이라도 볼까하다가 애매해져서 ... 16 b3bdc141 1 시간 전 150
321910 군붕이 휴가 어떻게 써야할지 조언좀 5 79d941c8 1 시간 전 38
321909 여친한테 물어볼까 말까 31 dd74ec89 2 시간 전 365
321908 아침마다 마을버스 새치기하는 년 뚝배기 깨고 싶은게 고민 7 0156d521 2 시간 전 150
321907 직장내괴롭힘으로 상사 신고하고 나왔는데 8 42524eee 2 시간 전 191
321906 이직하려면 최대한 어릴때? 아니면 경력기간 채워서?? 9 4300e7fd 3 시간 전 144
321905 학교 좀 천천히 졸업해도 괜찮을까? 2 3d1a4af3 3 시간 전 84
321904 생활에 생기가없다... 7 d2e362b7 3 시간 전 113
321903 3곳 중 어디서 인턴하는게 좋을까? 3 375503aa 3 시간 전 127