디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

C언어 BNF 문법에서 expression 부분

[성대아싸]갤로그로 이동합니다. 2012.02.09 22:07:13
조회 380 추천 0 댓글 1



BNF 문법은 언어 문법을 정의할때 쓰여요



첫번째  형광칠 부분이 

C 문법에서 expression 계열인 놈을 나타내는 가장 높은 위치에 있는 새끼에요


트리라고 생각하시믄 되요, 트리에서 가장 대가리(루트)에 있는 놈이죠


저놈은 중간에  

',' (쉼표) 토큰이 있으면 

expression 끼리 나열이 되는걸로 인식(파싱) 해요

없으면 걍 통과하는거에요

수식 , 수식 , 수식 , 수식 ....

즉 C언어 예를 들면


int var = 5;

5 , var , 0; // 수식들이 쉼표토큰에 의해 나열된다. 그리고 전체가 하나의 수식


근데 수식은 반드시 값을 가져요 ( eager evaluation 이든 lazy evaluation 이든간에)

그러면 수식을 나열해놨는데 

나열한 것들이 하나의 expression(수식)으로 묶여서 값을 가져야 되요


그러면 어떤 값이 선택이 되냐면 

뭐 맨 마지막에 나열된 수식이되겠죠


그리고 conditional-expression 부분에도 형광칠을 해놨어요

거긴 삼항연산자에요 (대개 ternary-expr 이라고 표현하는데...)


그건 중간에 "?" 토큰과  ":" 토큰이 존재하면 삼항연산자로 파싱이 되고요

없으면 그냥 통과에요

그 사이에는 expression 과  뒷부분에는 또 conditional-expression 이 오네요

즉 삼항연산자는 연달아서 쓸수 있어요


그리고 삼항연산자는 expression 이에요



if문하고 비슷하게 동작을 하긴하는데 , 상당히 많이 달라요

if-statement 는 값을 가지는게 아니라 , 프로그램 구조상 분기를 나타내는것이고

삼항 연산자는 두개의 수식중 , 조건에 따라 하나의 수식을 취하는거에요

삼항연산자도 수식이기 때문에 대입하는게 가능해요

예를 들면

int ret = 1>0? -1 : 0;


쉽게 생각하믄 

삼항연산자는 값을 가지는 놈이고 if문은 값을 가지는 놈이 아니다.






3줄 요약


1. 수식이 , 이걸로 나열되면 (수식1, 수식2, 수식3, 수식4)  제일 마지막 수식 값인 '수식4' 값을 가진다.

2. 삼항연산자는 수식이다 (값을 가진다)

3. if문은 문장이다 (분기구조를 나타낸다)




추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 뛰어난 운동 신경으로 남자와 싸워도 이길 것 같은 여자 스타는? 운영자 25/11/24 - -
이슈 [디시人터뷰] 충무로가 주목하는 신예, '세계의 주인' 서수빈 운영자 25/11/24 - -
AD 따뜻한 겨울나기! 방한용품 SALE 운영자 25/11/27 - -
303253 운동선수들 도박 이모군(175.114) 12.02.15 62 0
303252 서버프로그래밍 중인데 DB관련해서 질문좀 할게요. [5] SODMaster갤로그로 이동합니다. 12.02.15 93 0
303250 메모장만드는데 질문좀.. [2] 늅늅(203.237) 12.02.15 85 0
303249 리눅스를 사용해서 제대로된 개발을 해봤어야 리눅스의 참맛을알지.. [4] 씨발라드세요갤로그로 이동합니다. 12.02.15 141 0
303248 gui vs cui [3] 서현빠돌이갤로그로 이동합니다. 12.02.15 116 0
303247 리눅스는 제대로 쓸려면 멀티 부팅 하면 안됨. ㅇㅇ [4] ☎v2.0™갤로그로 이동합니다. 12.02.15 111 0
303246 횽들아 서현이랑 사귀려면 어찌해야 하나여?? [2] 서현빠돌이갤로그로 이동합니다. 12.02.15 82 0
303245 예전에 hotmail에서 메일서버를 윈도아니고 프리비에스디썼다던데 ㄴㅇㄹ(112.136) 12.02.15 39 0
303244 맥은 BSD 계승한거져?? [1] [성대아싸]갤로그로 이동합니다. 12.02.15 82 0
303243 예전에 성능때문에 윈도우서버 안썼다지만 요새는 죄다 윈도서버 [1] ㄴㅇㄹ(112.136) 12.02.15 79 0
303242 리눅스를 쓰는데 x윈도우만 쓰면 변태인가염?? [1] 서현빠돌이갤로그로 이동합니다. 12.02.15 68 0
303241 BSD 계열 사용하다가 Linux 사용하면. ㅇㅇ ☎v2.0™갤로그로 이동합니다. 12.02.15 77 0
303240 밥은 먹고 겔질 하는거냐??? 서현빠돌이갤로그로 이동합니다. 12.02.15 47 0
303239 리눅스 머하러 쓰냐. 프리비에스디가 있는데 [1] ㄴㅇㄹ(112.136) 12.02.15 94 0
303238 리눅스 쓰는 애들 보면 대부분 윈도우 멀티부팅함 ㅋㅋ [8] ㅇㅇㅇ(58.77) 12.02.15 258 0
303237 으헝.. 도와주세염 ㅠㅠ [5] 코딩...?갤로그로 이동합니다. 12.02.15 56 0
303235 [떡밥] 횽들 심심한데 스도쿠 만드는 코드 짜봐용.ㅋㅋㅋ [3] 생물학(122.35) 12.02.15 100 0
303234 솔직히 리눅스 왜쓰냐? [9] ㅇㅇㅇ(58.77) 12.02.15 144 0
303233 성다아싸 소환 [5] C_Perl갤로그로 이동합니다. 12.02.15 65 0
303231 수학공부좀 기초부터 다시하고싶은데요.. 봉크라이시스갤로그로 이동합니다. 12.02.15 65 0
303230 내가 예전에 말이지 생물학(122.35) 12.02.15 40 0
303227 늅늅 성대아싸횽 서몬! [5] dogfootson갤로그로 이동합니다. 12.02.15 72 0
303223 내가 원조 거칠게다 ㅋㅋㅋㅋㅋ [1] 서현빠돌이갤로그로 이동합니다. 12.02.15 86 0
303221 수학적 사고능력 키우려면 어떻게 해야함 [5] 1(118.220) 12.02.15 102 0
303220 거칠게 닉 쓰는거 곽횽인데... [1] 쿄스케갤로그로 이동합니다. 12.02.15 66 0
303214 2주정도 아무생각없이 노니까 봉크라이시스갤로그로 이동합니다. 12.02.15 40 0
303212 음ㅠ님들아ㅜㅜ [7] 코딩...?갤로그로 이동합니다. 12.02.15 67 0
303210 DB 잘아는 놈 없냐? [2] 호석갤로그로 이동합니다. 12.02.15 106 0
303209 형들 나 자료모으기용 블로그 만들려는데 어느곳이 쓸만한가요? [4] +어게인갤로그로 이동합니다. 12.02.15 84 0
303208 형님들 늅늅이 입갤했습니다 아노니갤로그로 이동합니다. 12.02.15 37 0
303206 아래 글 보고 저도.... 달팽이 배열.... 해봣서요....... [3] 속력왕김달팽(59.7) 12.02.15 84 0
303205 책을 많이 읽어야 지식이 늘어나는데 [2] y녀6디리(220.118) 12.02.15 58 0
303204 여행이나 함 갈까 y녀6디리(220.118) 12.02.15 31 0
303203 괜찮아 너희들 올때까지 난 여기서 기다림ㅋ y녀6디리(220.118) 12.02.15 26 0
303202 명불허전 프갤ㅋ [1] y녀6디리(220.118) 12.02.15 52 0
303201 이제 아스 소환해도 안나옴? y녀6디리(220.118) 12.02.15 30 0
303200 리눅스 리눅스 하는데 [2] y녀6디리(220.118) 12.02.15 82 0
303199 일찍자니까 일찍일어난닼ㅋㅋ y녀6디리(220.118) 12.02.15 46 0
303198 군대 꿈꿨다 [1] 쿄스케갤로그로 이동합니다. 12.02.15 54 0
303197 형들 늅늅이 오늘도 질문할게요 [2] gaenim갤로그로 이동합니다. 12.02.15 54 0
303196 파이썬 잘하는성님들 Hardtack9갤로그로 이동합니다. 12.02.15 68 0
303195 퇴갤 생물학(122.35) 12.02.15 34 0
303194 나 졸업식 때 말인데 (아싸형 덧글 점) [3] 생물학(122.35) 12.02.15 86 0
303192 리눅스...테마관련 질문 [1] 데헷(220.86) 12.02.15 61 0
303190 형들 , JAVA문제인데 내가 너무 어렵게 생각하고 있는것같아 [3] 싸이의홈스틸갤로그로 이동합니다. 12.02.15 99 0
303189 백트랙 리눅스??? [2] 데헷(220.86) 12.02.15 102 0
303188 애들은 5분, 프로그래머는 1시간 걸리는 문제 [22] goding(221.143) 12.02.15 275 0
303186 리눅스는 젠투지 무슨 소리야 [1] kukyakya(143.248) 12.02.15 84 0
303185 백트랙 리눅스 간지 작렬 [8] [성대아싸]갤로그로 이동합니다. 12.02.15 220 0
303184 리눅스는 데비안입니다 데비안 [1] ㅅㄷㅂ(112.218) 12.02.15 56 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2