*영*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 2
검색어 입력폼
  • 촘스키의 4가지문법, BNF와 EBNF차이, 의미론 평가A+최고예요
    프로그래밍 언어론 조원 : 사공재문 , 권영국 임하규 , 박영한 이수빈 , 최용식목 차 Chomsky's 4 classes of grammars BNF EBNF 정적의미론 공적의미론 표기의미론 출 처Chomsky's 4 classes of grammars Type-0 문법 (unrestricted grammars) 은 모든 형식문법을 포함한다 . 튜링기계 (Turing Machine) 로 인식가능한 모든 언어를 정확히 생성한다 . 그 인식가능한 언어란 튜링기계가 멈추는 모든 string 들을 의미한다 . 이 언어들은 또한 회귀열거가능 언어로 알려져있다 . 이것은 튜링기계를 항상 정지시켜서 결정가능한 recursive language 와는 다르다는 것을 주목해야 한다 . Type-1 문법 (context-sensitive grammars) 은 context-sensitive languages 를 생성한다 . 이 문법은 αAβ → αγβ 형태의 규칙을 가진다 . strings α 와 β 는 empty 일 수 있지만 γ 는 nonempty 이어야 한다 . 만일 S 가 어떤 규칙의 우측에 나타나지 않으면 규칙 S → ε 가 허용된다 . 모든 생성 규칙은 α- β 에서 β 의 길이가 α 의 길이보다 길다 . 이는 | α | ≦ | β | 를 의미하는 것이다Chomsky's 4 classes of grammars Type-2 문법 (context-free grammars) 은 context-free languages 를 생성한다 . 이것은 A → γ 의 형태를 가지는 규칙으로 정의된다 . 이 언어들은 non-deterministic pushdown automaton 로 인식가능한 모든 언어들이다 . Context free languages 는 대부분의 프로그래밍 언어 문법의 이론적 기초이다 . Type-3 문법 (regular grammars) 은 regular languages 를 생성한다 . 여기서는 왼쪽에 단 하나의 nonterminal 과 오른쪽에 단 하나의 terminal 을 가지고 , 단 하나의 nonterminal 이 뒤따르도록 , 규칙을 제한한다 . 만일 S 가 규칙의 오른쪽에 나타나지 않으면 규칙 S → ε 이 허용된다 . 이 언어들은 finite state automaton 으로 결정가능한 모든 언어들이다 . 덧붙여서 이러한 부류의 형식언어들은 regular expressions 으로 얻어질 수 있다 . Regular languages 는 search patterns 과 프로그래밍 언어의 어휘구조를 정의하는데 흔히 사용된다 .Chomsky's 4 classes of grammars 형식 (Type) 생성 규칙의 형태 제약 조건 Recognizer 형식 0 문법 (Unrestricted grammar) 생성 규칙에 대한 제한이 없음 어떠한 제약 조건이 없다 . Turing Machine 형식 1 문법 (Context sensitive grammar) α - β ( 단 , | α | ≦ | β |) 생성 규칙에서 2 개 이상의 non-terminal 이 terminal 을 생성할 수 없다 . Linear bounded Automata 형식 2 문법 (Context free grammar) A - γ 형식 1 문법의 제약조건과 함께 생성 규칙의 왼편에는 단 하나의 non-terminal 이 사용 될 수 있다 . Pushdown Automata 형식 3 문법 (Regular grammar) A- tB , A- t A- Bt, A- t 형식 1,2 문법의 제약조건과 함께 생성된 결과는 t1At2 와 같은 형태를 가질 수 없다 . Finite AutomataB N F BNF (Backus-Naur form) ; 배커스 - 나우어 형식 BNF 는 프로그래밍 언어를 정의하기 위한 최초의 메타 언어였다 . ALGOL 58 언어의 구문 기술을 위해 1959 년에 John Backus 에 의해 처음 도입되었으며 , Peter Naur 에 의해 강화되어 ALGOL 60 을 정의하는데 사용되었다 . BNF 는 구문 요소를 나타내는 기호 , 둘 중 하나의 선택을 의미하는 기호 ∥ , 좌변은 우변에 의해 정의됨을 의미하는 기호 ::= 등의 메타 기호들을 사용하여 규칙을 표현한다 . BNF 의 원형은 원래 Backus normal form 이었으나 , Peter Naur 의 이름을 넣어 오늘날과 같이 바뀌었다 .B N F 규 칙 1. BNF 규칙 1 밑줄 문자를 포함하는 로마체 소문자는 구문 종류를 나타냄 Ex) formal_port_list “ formal port list” 라는 구문 종류를 의미 순차문 , 프로세스문 , 파일 선언 , 신호 선언 , 명세 , 표현식 등의 구문을 표현 , 밑줄 문자는 공백 문자를 표현 2 . BNF 규칙 2 볼드체 단어는 예약어를 나타내는데 사용 array 예약어는 VHDL 문법에서 지정한 위치에 지정한 용도로만 사용되어야 함B N F 규 칙 3. BNF 규칙 3 구문 대체 규칙 left_hand_side ::= right_hand_side left_hand_side : 서술하고자 하는 구문 종류를 나타냄 “::=“ : which is read as “can be replaced by” right_hand_side : 대체 규칙을 나타냄 4. BNF 규칙 4 세로줄 (|) 은 RHS 값들이 세로줄로 분리된 값들로 각자 대체될 수 있음을 의미 letter_or_digit ::= letter | digit choices ::= choice choice 즉 세로줄은 or 의 의미B N F 규 칙 5. BNF 규칙 5 RHS 위치에서 대괄호 [ ] 안에 있는 항목은 선택 사항을 나타냄 return_statement ::= return [ expression ]; 위 표현은 아래의 표현과 동일한 의미 return_statement ::= return | return expression; 6. BNF 규칙 6 RHS 내부에 중괄호 {} 가 사용되면 반복을 의미 term ::= factor { multiplying operator factor} 위 표현은 아래의 표현을 포함 multiplying_term ::= factor | factor multiplying_operator factor 반복 횟수는 0 번을 포함하여 임의의 횟수가 가능B N F 규 칙 7. BNF 규칙 7 이탤릭체로 시작하는 구문 종류 이름은 이탤릭체가 없는 구문종류 이름과 동일한 내용을 표현 이탤릭체 부분은 구문의 의미 정보를 표현 아래의 세가지 예는 같은 내용을 표현함 type _name , subtype _name , name 8. BNF 규칙 8 “ simple_name ” 이라는 용어는 앞서 선언된 식별어를 표현하는데 사용됨 package_declaration ::= package identifier is package_header package_declarative_part end [ package ] [ package _simple_name ] ; package_simple_name _ 은 패키지의 식별어를 표현E B N F 일반적으로 BNF 표기법으로 모든 프로그래밍 언어를 표기할 수 있지만 , 보다 읽기 쉽고 간결하게 표현할 수 있는 확장된 EBNF(Extended BNF) 를 사용한다 . EBNF 는 특수한 의미를 갖는 메타 기호를 더 사용하여 반복되는 부분이나 선택적인 부분을 간결하게 표현 할 수 있다 . 반복되는 부분을 나타내기 위해서는 { } 를 사용한다 . 즉 , {a} 는 a 가 0 번 이상 반복될 수 있다는 것을 의미한다 . BNF 보다 추가된 특수한 의미를 갖는 EBNF 의 메타 기호 - { } : 0 번 이상 반복 - [ ] : 생략가 능 한 선택 - { }, [ ], |, ( ), ::= 와 같은 메타 기호를 언어의 terminal 로 사용하 는 경우 ‘ |’, ‘::=‘ 와 같이 인용부호로 묶어 표현E B N F 예제 1): {} - 0 번 이상의 반복 number → number digit | digit BNF 표기의 예 number 는 number digit 과 digit 으로 대치가 가능한데 , 이는 결국 digit 를 몇 번 반복하냐의 문제로 볼 수 있으므로 , 이를 EBNF 로 표기하면 다음과 같습니다 number → digit { digit } 예제 2): [] - 선택적인 옵션을 의미 BNF 표현 : if → if ( expr ) term | if ( expr ) term else term ENBF 표현 : if → if ( expr ) term [ else term ]정 적 의 미 론 · 타입의 제한 사항을 서술 : 이러한 명세를 검사하는데 필요한 분석이 컴파일 시간에 이루어질 수 있으므로 정적 의미론이라는 이름이 부여됨 · BNF 로 정적 의미론을 기술함에 있어 문제가 따랐기 때문에 , 프로그램의 정적 의미론의 올바름을 서술하고 검사하는 형식적인 접근 방법으로 속성 문법이 설계되었음 .공 리 의 미 론 · 주목적은 프로그램의 정확성 (correctness) 을 증명하는 방법의 개발과 연관하여 정의 · 프로그램의 각 문장 전후에 변수간의 관계와 제약을 명시하는 논리식 ( 단언 :assertion, 서술 :predicate) 을 포함 · 공리의미론은 논리식이 문장의 의미를 명시표 기 의 미 론 · 프로그램의 의미를 기술하는 가장 정밀한 방법 · 재귀 함수 이론에 근거 · 표기 의미론의 기본 개념 · 각 언어 요소에 대해 수학적 객체로 사상하는 함수를 정의출 처 http://www.aistudy.com/linguistics/chomsky_hierarchy.htm 촘스키와 세계화 ㈜ 시공사 - 존 라이언스 2001. 06. 26 촘스키 ( 시공사 ) – 존 라이언스 프로그래밍 언어론 (21 세기사 ) – 김일민 외 지음 1999. 02. 10역 할 분 담 - 사공재문 : 발표 , 조장 - 권영국 : 자료정리 - 임하규 : ppt 작성 - 박영한 : 자료조사 - 최용식 : 자료정리 - 이수빈 : 자료조사{nameOfApplication=Show}
    공학/기술| 2012.06.07| 17페이지| 1,500원| 조회(1,686)
    미리보기
  • 프로그래밍언어 역사와 소개 + SWOT분석
    프로그래밍 언어의 특성과 발전사 4 조 사공재문 권영국 박영한 임하규 이수빈 김용식목 차 프로그래밍 언어의 초창기 프로그래밍 언어의 시대별 특성 프로그래밍 언어의 SWOT 분석 출처프로그래밍 언어의 초창기 1. Zuse 의 Plankalkul 상당히 완벽하며 , 데이터 구조 분야에서 매우 진보적인 특징을 가지고 있음 . 프로그램 변수간에 관계를 보여주는 수학적인 표현식을 포함하고 있음 . 2. John Mauchly 의 Short code(1949) 순수 인터프리터로 개발되어 있어서 실행시간은 기계어보다 50 배나 느렸지만 , 프로그래밍 과정을 단순화 시켰다 .프로그래밍 언어의 초창기 3. Backus 의 Speedcoding 부동소수점을 연산에 포함 시킨 시스템이다 . 부동소수점에 필요한 산술연산식이 포함되었고 , 조수 레지스터를 자동 증가시키는 새로운 장치를 포함했다 4. Grace Hopper 의 UNIVAC 컴파일 시스템 Grace Hopper 가 이끈 팀이 일련의 컴파일 시스템을 개발하였다 . 여전히 원시적인 수준이었지만 , 기계 코드에 비해서 상당한 진전이 있었다 .1950 년대의 프로그래밍 언어 1. 시대적 배경 : 1940 년대 후반과 1950 년대 초기의 컴퓨터들은 지금의 컴퓨터보다 훨씬 덜 유용 했다 . 어셈블리어조차도 없던 시기였기 때문에 모든 것은 기계어 로 만들어졌다 . 프로그 램을 읽는 것이 매우 힘들고 , 절대주소를 사용하기 때문 에 여러 문제점을 안고 있었다 . 2. 주요 언어 : FORTRAN - 과학계산용 언어 . 효율적인 코드를 생성 한다 . 비구조적 언어 이다 . COBOL - 상업응용분야 , 영어 단어 를 많이 사용한다 . Algol60 - 알고리즘을 기술 , 대부분의 언어에 영향 을 미쳤다 . LISP- 인공지능 응용분야에 이용 되었다 . APL - 수학적 계산 을 위한 언어 .trengths eaknesses hreats pportunities SWOT FORTRAN ( FOR mula TRAN slation )FORTnstitute) 에서 FORTRAN Ⅳ 를 보완 , 발전하여 FORTRAN77 을 발표하여 현재 널리 사용한다 . 1991 년 FORTRAN77 에 현대 프로그래밍 언어의 요소를 추가한 FORTRAN90 발표trengths eaknesses hreats pportunities SWOT COBOL ( CO mmon B usiness- O riented L anguage)trengths eaknesses hreats pportunities SWOT ALGOL( ALGOrithmic Language) trengths eaknesses hreats pportunities SWOTtrengths eaknesses hreats pportunities SWOT LISP( LISt Processor) trengths eaknesses hreats pportunities SWOTAPL ( AP rogramming L anguage) trengths eaknesses hreats pportunities SWOT1960 년대의 프로그래밍 언어 1. 시대적 배경 : 언어의 범람 - 몇 개의 프로그래밍 언어의 성공으로 인해 수백개의 프로그래밍 언어가 만들어진다 . 50 년대에 비해 , 60 년대에는 모든 분야에 사용되는 언어가 만들어졌다 . 2. 주요 언어 : PL/I - 일반적 이고 보편적 인 언어 - FORTRAN + COBOL Algol68 - 표현력 있고 , 이론적으로 완전히 일관성 있는 구조 , 즉 직교성 언어 이다 . SNOBOL - 스트링 처리 언어 Simula67 - 시뮬레이션 언어 , 클래스의 개념을 도입 하여 최초의 객체 지향 언어 라고 불린다 . BASIC ( B eginners A ll-purpose S ymbolic I nstruction C ode)trengths eaknesses hreats pportunities SWOT PL/I ( P rogramming L anguage One )trengths eaknesses hreats pportunities SWOT BASIC ( B eginners A ll-purpose S ymbolic I nstruction C ode)1970 년대의 프로그래밍 언어 1. 시대적 배경 : 60 년대에 쏟아져 나온 많은 언어들 중 가장 대중적으로 성공한 PASCAL 을 발전 시킴 . 언어 설계는 융통성 , 정확성 , 구조화 ( 추상화 ) 가 추구 . 신뢰성 , 유지보수 용이성에 따른 언어가 개발됨 . 단순성을 추구 - 복잡했던 60 년대 언어에 비해 단순해졌다 . 2. 주요 언어 : Pascal - N.Wirth 에 의해 탄생 . 작고 단순하고 효율적인 구조화된 언어 .- 사용하기 쉬운 교육용 언어 . C - Dennis Ritchie 에 의해 탄생 . 식 지향으로 단순성을 유지한다 . CLU - 추상화 메커니즘에 대한 일관성이 있는 접근trengths eaknesses hreats pportunities SWOT C 언어trengths eaknesses hreats pportunities SWOT PASCAL trengths eaknesses hreats pportunities SWOT trengths eaknesses hreats pportunities SWOT1980 년대의 프로그래밍 언어 1. 시대적 배경 : 프로그램 작업과 관리에 있어서 복잡도의 감축을 강조 . 수천만 행의 프로그램에 엄격한 프로그래밍 원칙을 가지게 되어 프로그래밍에 대한 새로운 생각을 제시 . 언어의 패러다임이 다양해졌다 . 2. 주요 언어 : Ada - 80 년대의 PL/I 라고 불리며 , 미 정부의 지원 으로 탄생되었다 . 설계의 세밀함 과 주도 면밀함을 가지고 있다 . Prolog - 수학적 논리를 직접 사용 하였다 . Smalltalk - 완전히 일관적인 객체지향을 추구하는 언어 로 , 순수 객체지향 언어 라고 불린다 . C ++ - 가장 대중적 언어인 C 와 객체지향 패러다임의 만남 . C 언어에 클래스 개념을 도입하면서 시작 . 대중적으로 성공한 객체지향 언어 .trengths eakneses hreats pportunities SWOTtrengths eaknesses hreats pportunities SWOT C++ trengths eaknesses hreats pportunities SWOT1990 년대의 프로그래밍 언어 1. 시대적 배경 : 속도향상과 인공지능 언어로 , 노이만식 개념을 포기하는 방향에서 병렬처리가 가능하도록 문제를 부분문제로 나누고 이를 효과적으로 해결하도록 하여 속도를 향상 시키려 하였고 , 컴퓨터에 환경에 따라 언어가 변화되었다 . 2. 주요 언어 : Visual Basic - 비쥬얼 인터페이스 작성을 용이 하게 한다 . Python - 암스테르담에서 귀도 반 로섬에 의해 개발 인터프리터식 , 객체지향적 , 동적 타이핑 대화형 언어 PHP - GPL 라이센스에 의해 소스 코드가 공개된 소프트웨어 Java - 인터넷 언어 , 현재까지의 언어들의 장점들만 탑재 Ruby- 포스트 모던 프로그래밍 언어 , smalltalk 의 계보를 잇는 순수 객체지향 언어 이다 . Java script - 정적인 HTML 에 동적인 기능을 추가 하기 위한 클라이언트용 스크립트 언어이다 . C# - 현대적이고 혁신적인 언어로 .NET 플랫폼 기반의 소프트웨어를 개발하는 최고의 도구 이다trengths eaknesses hreats pportunities SWOT Visual Basic trengths eaknesses hreats pportunities SWOTtrengths eaknesses hreats pportunities SWOT Python trengths eaknesses hreats pportunities SWOT 우수한 이식성 C, C++ 로 모듈 작성 가능 효율적인 코드를 간단하게 사용 제약이 표현의 자율성을 떨어뜨린다 . 접근 제한자를 지원하지 않음trengths eaknesses hreats pportunities SWOT PHP trengths eaknesses hreats pportunities SWOT 다양한 데이OTtrengths eaknesses hreats pportunities SWOT Ruby trengths eaknesses hreats pportunities SWOT 공개 소프트웨어 언어의 유연성 ( 개발자가 루비의 어떤 부분이든 자유롭게 바꿀 수 있음 ) 해석형 언어이기 때문에 실행 속도에 어느 정도 핸디캡이 있다 . 레일스의 독창적인 아이디어와 루비의 기능이 결합되어 만들어진 웹 개발 프레임워크로 현재 웹 개발 분야에 많은 활용이 되고있다 . 루비의 문자열 클래스는 현재도 유니코드를 지원하고 있지만 , 몇가지 필수적인 메소드가 바이트 단위에서만 작동한다는 문제가 있다 .trengths eaknesses hreats pportunities SWOT Java Script trengths eaknesses hreats pportunities SWOT 작업이 빠르고 생산성이 좋음 빨리 배울 수 있다 특정 운영체제에 대한 제한을 받지 않는다 웹 브라우저 안에서 한정된 객체와 메소드만을 갖고 있기 때문에 채팅 사이트나 게임 등의 고급 프로그램 작성이 불가능 소스 코드를 사용자가 쉽게 복사하여 재사용할 수 있다 . 즉 보안성이 없다 . 동적인 홈페이지를 구성하는데 필요한 다양한 기능을 가지고 있다 .trengths eaknesses hreats pportunities SWOT C# trengths eaknesses hreats pportunities SWOT 분산 환경에 적합한 언어 구조 중립적인 언어 뛰어난 생산성 강력한 디버깅 기능 C#이 작동하기 위해서는 CLR 엔진과 닷넷 프레임 워크가 필요한데 현재 닷넷을 지원하는 운영체제가 윈도우 2003 밖에 없다 자바가 사용하는 부분과 비슷한 영역에 사용될 수 있다 . ( 데이터베이스 프로그램 , 웹 서버 프로그램 , XML 서 비스 ) Java 대비 부족한 기능출 처 Concepts of Programming Languages -Robert W. Sebesta 프로그래밍 언어론 ( 쉽게 배우는 언어의 원리와 구조 )}
    공학/기술| 2012.06.07| 36페이지| 1,500원| 조회(740)
    미리보기
전체보기
받은후기 1
1개 리뷰 평점
  • A+최고예요
    1
  • A좋아요
    0
  • B괜찮아요
    0
  • C아쉬워요
    0
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 05월 05일 화요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
5:25 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감