2023/05

프로그래밍 언어론 - 포괄 부프로그램 다양한 타입의 매개변수를 허용하는 부프로그램을 의미한다. Ada 예를 통한 이해 : 두 예가 거의 유사 → 이때 포괄 부프로그램을 사용 Ada generic이라는 예약어를 이용해서 포괄 부프로그램을 생성 generic type Element is private; procedure exchange(x, y: in out Element); procedure exchange (x, y: in out Element) is temp: Element; begin temp := x; x := y; y := temp; end exchange; integer, float, character 타입의 데이터를 교환하는 swap이라 불리는 3개의 부프로그램이 정의 procedure swa..
프로그래밍언어론 - 중복 부프로그램 같은 이름을 갖는 두 개 이상의 부프로그램들을 의미한다 단 모든 중복 부프로그램은 매개변수 내용이 달라야 한다 C++, Java, Ada 등에서 중복 부프로그램 기능을 지원 C언어에서는 허락하지 않아서 에러가 발생…! C++에서는 가능…! 주의 사항 : 중복 부프로그램이 매개변수까지 동일하면 안된다 부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
프로그래밍언어론 - 매개변수 전달 방식 값 전달 실 매개변수의 값을 형식 매개변수에 저장하고 형식 매개변수를 부프로그램의 지역 변수로 사용하는 방식이다 실 매개변수와 형식 매개변수는 별개의 변수이므로 형식 매개변수의 어떠한 변화도 실 매개변수에는 아무런 영향을 미치지 않는다 C와 Java, C++는 값 전달이 기본 방식, Ada의 in 매개변수가 값 전달 방식이다. in 매개 변수를 이용해서 값 전달을 보여주는 Ada의 예 Ada in 매개변수의 특이점은 값을 배정 할 수 없다는 점이다. with TEXT_IO; use TEXT_IO; procedure parameter is package INT_IO is new TEXT_IO.INTEGER_IO (integer); use INT_IO; a, b: in..
프로그래밍언어론 - 부프로그램 부프로그램이란, 프로그램에서 호출에 의해 실행되도록 만들어진 일련의 코드를 의미한다 부프로그램의 정의와 호출 부프로그램은 실행 할 내용을 기술한 일련의 코드로 머리부와 본체로 구성 되었다 부 프로그램은 코드 흐름 상, 순차적으로 실행 되던 중 함수, 프로시져 등 프로그램 흐름을 변경해서 기능하는 것들을 일컫는 것이라 이해했다 부프로그램의 머리 부분은 예약어, 부프로그램의 이름, 매개변수들의 이름과 타입, 반환 값의 타입 등을 기술한다 부프로그램의 정의 방법 부프로그램 선언 부프로그램이 정의되어 있다는 것을 컴파일러에게 알리는 역할 부프로그램의 머리부는 제공하지만, 부프로그램 몸체를 포함하진 않음 void sub(int, int); 부 프로그램 호출 FORTRAN에서 SUB ..
프로그래밍언어론 - 반복문 반복문이란, 특정 부분을 반복 실행되게 하는 문장을 의미한다. 예시 : FORTRAN의 DO문 변수가 초기 값을 갖고 한 번씩 반복할 때마다 증가 값만큼 증가되면서, 종료 값보다 작거나 같은 동안 문장들을 실행 증가 값은 생략 가능, 생략하면 반복 할 때마다 변수 값은 1씩 증가 While 문 식이 참인 동안 문장을 반복해서 실행 C/C++/Java의 while 문 while(Expression) 문장; EBNF -> while() Ada의 while 문 while(Expression){ 문장 1; 문장 2; ... } with Ada.Text_IO; use Ada.Text_IO; procedure Sum is package Int_IO is new Ada.Text_IO.Int..
프로그래밍 언어론 - 조건문 조건문을 사용하면 조건에 따라 둘 이상의 실행 경로 중 하나를 선택할 수 있습니다. 프로그래밍에서 의사 결정 논리를 구현하기 위한 수단을 제공합니다. 두 가지 일반적인 유형의 조건문이 있습니다. “if” 문 if 문은 조건이 참인지 거짓인지에 따라 특정 실행 경로를 선택합니다. if 문은 FORTRAN 프로그래밍 언어에서 처음 도입되었습니다. “case” 또는 “switch” 문 case 또는 switch 문을 사용하면 서로 다른 조건에 따라 여러 경로 중 하나를 선택할 수 있습니다. 표현식을 평가하고 값을 다른 케이스 레이블과 일치시킵니다. 일치하는 경우에 따라 해당 코드 블록이 실행됩니다. If 문 FORTRAN If 문은 FORTRAN에 도입 처음 도입하였습니다 식의 결..
정규 언어, 정규 문법, 유한 오토마타의 동치 관계 전체 문법이 주어지면 문법으로 부터 토큰들을 분리해내고 이 토큰들을 정규 문법으로 표현 토큰에 대한 정규 문법을 정규 표현으로 표시. 이 정규 표현을 인식하는 인식기를 만들면 을 주면 언어가 주어지면, 이를 정규표현으로 변환 정규표현을 인식하는 NFA을 구성, NFA를 DFA로 변환, DFA를 최소화 하면 어휘 분석기 를 만들 수 있음 정규 문법, 정규 표현, 유한 오토마타의 관계가 서로 동치관계 임을 증명 정규문법 ⇒ 정규표현 정규표현 ⇒ 유한오토마타 유한 오토마타 ⇒ 정규문법 정규문법 ⇒ 정규표현으로변환 정규표현에의해서 정의된 문법G에 의해 생성 되는 언어 L(G)가 무엇인지를 알기 위해서는, 정규 문법을 정규 표현으로 변환 정규 문법을 계수(coe..
NFA와 DFA DFA와 NFA는 서로 동등하다 DFA보다 NFA가 언어의 구조를 쉽게 표현 NFA는 DFA보다 프로그램으로 구현하기 어려움 DFA는 NFA보다 프로그램으로 구현했을 경우에 효율면에서 훨씬 우수 일반적인 구현은 DFA로 해야 되는데 NFA가 언어의 구조를 쉽게 표현할 수 있기 때문에 서로가 변환이 필요하다 DFA의 상태수 최소화(state minimization) DFA를 이용하는 어휘 분석기의 상태 전이표의 크기를 줄임 기억공간을 적게 차지하도록 하고 또한 어휘분석 프로그램을 간단히 하는데 큰 도움 상태수를 최소화하는 방법 동치관계(equivalence relation)을 이용 상태수를 합침(state merge) [정의 3.22] 구별가능(distinguishable) [정의 3.23..
페이로드-공격 에이전트-좀비, 봇 페이로드 부류는 악성 소프트웨어가 컴퓨터나 감염된 시스템 네트워크 자원을 공격자가 사용하기 위해 전복 시킨다. 인터넷에 연결된 컴퓨터를 비밀리에 장악하고, 그 컴퓨터를 이용해 공격을 수행하고 관리한다. 봇 작성자를 추적하기 어렵다 보통 공격자는 봇넷을 형성해서 공격한다. 주로 무결성과 가용성을 공격한다 봇 활용 Distributed Denial-of-service Attack (DDoS) (분산 서비스 거부 공격) DDoS 공격은 엄청난 양의 요청 또는 트래픽으로 네트워크, 서비스 또는 웹 사이트를 압도하여 정상적인 기능을 방해하려는 시도입니다. 웹사이트의 서버를 여러 소스에서 유입되는 대량의 트래픽으로 압도하여 합법적인 사용자가 웹사이트에 액세스할 수 없도록 합니다. ..
오늘은 프로젝트를 진행하며 생긴 갈등을 기록하고자 합니다. 항상 팀 프로젝트 과제는 악명이 높습니다. 누군가는 의미 없다고도 하죠 그럼에도 팀 프로젝트 사라지지 않는 이유는 우리 사회가 협력을 통해 성장해왔기 때문이라 생각합니다 즉 팀 프로젝트는 일종의 사회 나가는 연습을 하는 것이죠 또한, 팀 프로젝트가 중요한 이유는 기술적인 역량보다 사람과 소통하는 능력을 키우는게 더 어렵기 때문입니다 1차 난관 : 왜 하지 않는걸까…? Feat 내 욕심 캡스톤을 시작하며 전 욕심이 있었습니다. 한 마디로 정의하면 이상적인 개발자 협업 방식을 꿈꿨습니다. 예를 들면 잘 지켜지는 커밋 규칙, 어느 정도 변동을 반영하며 일정 대로 진행 되는 개발, 최소한의 서류 작업 등이 있었습니다 하지만, 역시나 이상과 현실은 달랐습..
berom
'2023/05 글 목록