파이썬 ,c++이런 프로그램은 어떻게 만든거야?? 설명이 이상하긴 한데 예를 들면
난 아랍어를 전혀 모르는데 아랍인이 나한테 뭐라뭐라 하면 알수가 없잖아
근데 뭘했더니 알아들을수가 있더라 에서
뭘 했더니는 대체 어떻게 한걸까?
컴퓨터가 지능이 있을리도 없고 오른쪽이란 개념을 어떻게 집어 넣을수 있는걸까 너무 궁금함 아랍어로 아무리 오른쪽이라 말해도 난 그게 뭔지 모를거 아녀
설명 참 답답하게해서 미안해유 컴공과 형님덜
20개의 댓글
무분별한 사용은 차단될 수 있습니다.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
405242 | 선글라스 모델 선택 고민 | 0cde31c2 | 6 분 전 | 8 |
405241 | 여유증 수술 고민 1 | dc2b3d1a | 7 분 전 | 30 |
405240 | 일단 몸무게만 들었을 때 몇 kg부터 중량급이란 느낌이 남? 5 | d35cd349 | 41 분 전 | 89 |
405239 | 여기 빠지 어딘지 아는 사람 있을까?? 6 | 0522a9ec | 45 분 전 | 88 |
405238 | 착한아이 컴플렉스 거절못하는 사람 4 | c65ed2cf | 1 시간 전 | 133 |
405237 | 회사에 경조사비 은근 부담스럽네.. 8 | 08bd317c | 1 시간 전 | 222 |
405236 | 운전할지 고민된다 4 | 31bf602f | 1 시간 전 | 63 |
405235 | 인성 터진 직원은 자꾸 깎아내리려 하고 2 | dbab47c1 | 1 시간 전 | 89 |
405234 | 제일 깊숙한 어금니 임플란트 지르콘vsPFM 6 | cdc24add | 1 시간 전 | 60 |
405233 | 중도 퇴사자 연말정산 고민 5 | e22313e5 | 1 시간 전 | 102 |
405232 | 전에는 애니 신작만 봐도 행복했는데 5 | d89fcb15 | 2 시간 전 | 91 |
405231 | 닭가슴살 첨 삶아보는데 이렇게삶는거 맞아? 7 | 2fa1a7f5 | 2 시간 전 | 152 |
405230 | 🦷 이 크라운 고민 16 | 6ae3fdef | 2 시간 전 | 133 |
405229 | 천천히 멀어지는 법있음? 4 | e3895c51 | 2 시간 전 | 128 |
405228 | 이거 고백의 타이밍을 모르겠다 4 | 1f08d564 | 2 시간 전 | 125 |
405227 | 인강들을떄 졸린사람있냐 2 | b1df2c61 | 2 시간 전 | 64 |
405226 | (사진있음) 앞니 크라운 고민 6 | 6ae3fdef | 2 시간 전 | 90 |
405225 | 회사 남직원이 들이댐.. 뭐지? 54 | 21d435bb | 3 시간 전 | 435 |
405224 | 연애) 내가 서운한상황이 너무 싫다 8 | 6d15d1d7 | 3 시간 전 | 268 |
405223 | 소개팅하는데 사진으로 까는건 12 | 649a0825 | 4 시간 전 | 301 |
948dca2d
기계어로 번역해서 알아들어
0370b539
대충 구글 번역기에 작성한다고 생각하셈
프로그래밍 하는 툴이 번역기고 거기다가 한글로 쌸라쌸라하면 그 아래 번역된거 나오잖음
그렇게 컴퓨터 언어로 변환해서 쓰는거
152aafc4
몇단계로 번역을 거칩니다요
5629e16d
아랍인이랑 나 사이에 번역해주는 사람이 있다고 생각하면 됨. 그게 컴파일러임
4ef10d71
정말 쉽게 말하면 c언어는 번역기라고 생각하면됨
번역기에 오른쪽이라고 입력하면 아랍어로 오른쪽이라는 뜻의 단어가 나오잖아
이거처럼 니가 c언어로 오른쪽이라고 입력하면 캄퓨터가 알아들을수 있는 기계어라는걸로 번역해서 입력해주는거임
4ef10d71
니가 궁금해하는 뭘했더니는 뭘한게 아니라 아랍어를 잘하는사람이 오른쪽이라고 입력하면 아랍어의 오른쪽을 의미하는 단어가 나오게 약속을 해놓은 거임 번역기에 설정을 하는거처럼 말이야
b396833b
여기까진 이해가능 그럼 번역기라고 한다면 한국어로 번역이 될꺼 아니야 그럼 그 한국어는 누가 내 머릿속에 오른쪽은 ~다 라고 설정해 놓은거야??
답답하지 ㅠㅠ 컴이라곤 롤밖에 몰라서 그래ㅠㅠ
4ef10d71
ㅇㅇ 다 설정해놓은거지 그래서 코딩에 규칙이 있는거임 다 설정해놓은거니까
24c4af1a
프로그래밍 언어는 컴퓨터보다 먼저나옴
옛날에 기계로 수학식을 빠르게 풀지는 취지에서 나왔던걸로 아는데 이걸 전자부품이랑 연결하다보니 켜졌다(1) 꺼졌다(0) 밖에 못 알아들으니 2진수로밖에 짤 수 없었던거지
이 구조랑 알고리즘들이 쌓여서 현재의 프로그래밍 언어가 된거고
b396833b
10의 조합으로 컴퓨터가 오른쪽이 오른쪽이란 개념을 가지게 된다는게 제 아둔한 머리론 이해가 안갖니다...ㅠ
316bd1c7
스위치가 있잖아 1이 켜진 상태고 0이 꺼진 상태라고 규정한거임
316bd1c7
여기서 발전시켜서 2진수 -> 10진수 -> 16진수로 가는거고
5629e16d
컴퓨터가 오른쪽이란 개념을 갖고 동작하는게 아니라 프로그래머가 논리적으로 오른쪽 왼쪽을 구분해서 구현하는거임.
c6b5ad28
10001111101110110101010101010110010110110100000101
7b84b2b7
c언어가 어셈블리어로 바뀌는과정...
그거는 4학년때 컴파일러 수업 들으면 알 수 잇습니다
아니 그래서 0이랑 1을 어케 컴퓨터가 받아들이냐고?
그거는 전자과로 전과하십시오
46b42b53
내가 컴퓨터 언어학 개론 조교 해봐서 대충 설명해줌
먼저
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
이런식으로 바뀌고 컴퓨터 회로가 저걸 보면서 처리를 할 수 있게 되는거야
b396833b
bdd43ecc
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
2a030ee4
쉽게 말해서 전세계 모든 컴퓨터는 0과 1로만 되어있는 컴퓨터 언어는 다 알아들어. 이걸 기계어라고 함
근데 기계어는 사람이 읽을수 없기 때문에 예를들어 text = 00100110 이런식으로 번역어를 만들어 놓는거야
그걸 프로그래밍 언어라고 하는거고 모든 프로그래밍 언어는 마지막에 컴파일이라는 기계어 번역 과정이 반드시 들어감
그래서 C언어와 C언어 컴파일러는 항상 세트로 붙어있음
C언어로 코드를 다 짜면 마지막에 text = 00100110 이렇게 C언어 컴파일러가 기계어로 번역해주고 그러면 기계는 그 프로그램을 돌릴수 있는거임
인간의 언어는 영어도 전세계 보급률이 40%도 안되지만 컴퓨터의 기계어는 전세계 보급률이 100%인거임
b396833b