본문 바로가기

Computer Science35

prolog - 가족관계 추론 가족관계 추론 prolog나 pylog를 사용하여 가족관계를 추론할 수 있는 프로그램을 작성. male(rahim). male(karim). male(kabir). male(roy). female(tisa). female(jesi). parent(rahim,karim). parent(rahim,kabir). parent(karim,tisa). parent(karim, jesi). parent(babir, roy). son(X,Y):- male(X), parent(Y,X). daughter(X,Y):- female(X), parent(Y,X). father(X,Y) :- male(X), parent(X,Y). mother(X,Y) :- female(X), parent(X,Y). spouse(X,Y) :- .. 2020. 5. 1.
CA & CO Chapter 5 practice problem Suppose an 8-bit data word stored in memory is 11000010. Using the Hamming algorithm, determine what check its would be stored in memory with the data word. Show how you got your answer. 8-bit data에는 4-bit의 check bits가 필요하다. Check bits들의 even parity를 확인하면 된다. Check bits들은 2진수 표현에서 각 자리가 1이고 나머지가 0인 위치에 존재한다. 예) C -> 0001, 0010, 0100, 1000 -> 1, 2, 4, 8 -> C1, C2, C4, C8 각 C들의 비트는 해당 자릿수가 1인 data.. 2020. 4. 26.
CA & CO Chapter 4 practice problem for the hexadecimal main memory addresses 111111, 666666, BBBBBB, show the following information, in hexadecimal format: Tag, Line, and Word values for a direct-mapped cache, using the format of Figure 4.10 Tag and Word values for an associative cache, using the format of Figure 4.12 Tag, Set, and Word values for a two-way set-associative caches, using the format of Figure 4.15 111111h = 0001 00.. 2020. 4. 21.
OS #1 - Operating System Introduction. 앞으로 배울것들 what operating System Do Computer-System Organization Computer-System Architecture Operating-System Structure Operating-System Operations Process Management Memory Management Storage Management Protection and Security Kernel Data Structure Computing Environments Open-Source Operating System 학습의 목표 컴퓨터 기본구조 파악한다. OS에서 중요한 구성요소에 대해 알아본다. 컴퓨팅 환경에 대한 전반적인 시각을 가진다. open source os 경험한다. Opera.. 2020. 4. 20.
CA & CO Chapter 3 practice problem List and briefly define the PCIe protocol layers. PCI 익스프레스(PCI Express)는 2002년 PCI SIG가 책정한 입출력을 위한 직렬 구조의 인터페이스이며 인텔 주도하에 만들어졌다. 공식적인 약어로 PCIe로 표기한다. 옛 PCI, PCI-X와 AGP 버스를 대체하기 위하여 개발 되었다. PCIe는 앞서 언급한 버스 표준들과 비교하여 높은 시스템 버스 대역폭, 적은 I/O 핀 수, 적은 물리적 면적, 버스 장치들에게 더 뛰어난 성능 확장성, 상세한 오류 검출 및 보고 구조(Advanced Error Reporting (AER)[1]), 네이티브 핫-플러그 기능등 여러 장점을 가지고 있다. 최근에는 하드웨어 I/O 가상화도 지원한다. Physical la.. 2020. 4. 17.
CA & CO Chapter 3 최상위에서 본 컴퓨터의 기능 및 상호 연결 컴퓨터 구성요소 컴퓨터 구성요소를 이해하려면 각 요소들의 외부적 동작들(다른요소들과 교환하는 데이터와 제어 신호들에 대한 설명) 상호연결 조직의 사용을 관리하기 위해 필요한 상호 연결 조직과 제어에 대해 설명 컴퓨터 구성요소를 이해하게 되면 시스템 병목(System bottlenecks) 대체 경로들(alternate pathways) 부품 고장에 따른 시스템 결함의 정도 및 성능 향상 용이성 파악 폰 노이만 구조 데이터와 명령어는 읽기 쓰기가 가능한 기억장치에 함께 저장된다. 기억장치의 내용은 저장된 데이터의 형식에 관계없이 위치에 따라 주소를 지정할 수 있다. 명령어의 실행은 (별도의 수정이 없는 한) 한 개씩 순서대로 진행된다. *hardwired program : 여러가지 형태로 결합된 작은 논리.. 2020. 4. 15.
CA & CO Chapter 1 기본 개념과 컴퓨터 발전과정 조직과 구조 컴퓨터 구조 : 시스템의 기본적 특성들 중 프로그래머에게 보이는 부분들, 즉 프로그램의 논리적 수행에 직접적인 영향을 주는 시스템 특성(ISA:명령어 세트 구조) 컴퓨터 조직 : 구조적 규격에서 정의한 사항들을 구현하기 위한 연산 유니트들과 상호 연결 방식. 구조적 속성의 예시로 명렁어 세트, 데이터 표현 비트 수, I/O 방식, 기억장치 주소지정. 조직적 속성에는 프로그래머에게는 보이지 않는 하드웨어 세부 사항들인 제어 신호, 컴퓨터와 주변 기기들 사이의 인터페이스 및 기억장치 기술 어떤 컴퓨터가 곱셈 명령어를 가지게 할것인지 --> 구조적 차원 그 곱셈 명령어를 어떤 방식으로 구현할 것인지 --> 조직 설계의 차원 computer familty(계열) : 구조는 같지만 조직이 나른 모델 .. 2020. 4. 15.
한글코드의 표준화 과정 한글코드의 표준화 과정 최초의 컴퓨터인 ENIAC이 만들어진 후 15년이 지나서야 문자 집합이라는 개념이 생겼다. 그 시초는 127개의 문자를 표현할 수 있는 ASCII 코드이다. 이후 프랑스어, 독일어와 같은 유럽어를 표현하기 위해 확장 ASCII 를 만들었고 128번부터 255번까지 새로운 문자를 정의할 수 있었다. 이 확장 ASCII는 ISO8859 유럽 통일 표준안으로 제정되었다. 하지만 중국, 일본 한국(CKJ)의 경우 한글, 한자, 병음등 그 개수가 많아 확장 ASCII코드로도 모두를 처리할 수 없었다. 컴퓨터에서 한글 표현 방법의 경우 크게 조합형과 완성형으로 나눌 수 있다. 1. 조합형 : 한글의 제자 원리에 기반하여 초성, 중성, 종성에 각각 코드를 할당하는 방식 N바이트 조합형 - 고육.. 2020. 3. 27.
ISA 어셈블리 코드 해석하기 1.4 Given the memory contents of the IAS computer shown below, show the assembly language code for the program, starting at address 08A. Explain what this program does. Address와 contents를 2진수로 나타내면 Address Contents 1. 1000 1010 0000 0001 0000 1111 1010 0010 0001 0000 1111 1011 2. 1000 1011 0000 0001 0000 1111 1010 0000 1111 0000 1000 1101 3. 1000 1100 0000 0010 0000 1111 1010 0010 0001 0000 1111.. 2020. 3. 26.
무어의 법칙 1.7 Explain Moore's Law The complexity for minimum component costs has increased at a rate of roughly a factor of two per year ... Certainly over the short term this rate can be expected to continue, if not to increase. Over the longer term, the rate of increase is a bit more uncertain, although there is no reason to believe it will not remain nearly constant for at least 10 years. That means by.. 2020. 3. 26.
손이 가는 프로그래밍 일탈 10가지 ‘좋은 걸 어떡해’··· 손이 가는 프로그래밍 일탈 10가지 규칙을 어기면 약간의 스릴을 느낄 수 있다. 때로는 더 좋고 더 효율적인 코드를 작성할 수 있기도 하다. ⓒ Image Credit : Getty Images Bank우리 모두 해본 적이 있다. 엄마가 보지 않을 때 쿠키를 집어 들고, 저녁으로 와인을 좀 많이 마시고, 차를 애매한 곳에 잠깐 살짝 주차하는 것 등등 말이다. 종종 제한속도를 초과하기도 한다. 그리고 맞다, 우리 개발자 모두는 프로그래밍의 기본적인 www.ciokorea.com 첨부한 파일 내용에 따라 자기가 짠 프로그램에 그런 유형의 오류가 있는 예를 보이면서 스스로 어떻게 프로그램을 짤지 설명하라. 나쁜 프로그래밍 습관 No. 1 : 베끼기(Copying) - 코드를 짤 때 비.. 2020. 3. 26.
프로그래밍 언어 : Rust RUST 언어는 C/C++의 수행속도에 비견되는 속도를 가진 함수형 언어다. 이 언어의 특성을 요약하고, Python 등 기존 언어와 비교하라. RUST는 C, C++과 같은 컴파일 기반의 언어로 시스템 프로그래밍 언어에 속한다. 멀티코어 프로세싱을 지원하며 동시성 프로그래밍 및 병렬 프로그래밍에 강점을 가지도 있다. Rust를 기존 언어와 비교해 보려면 먼저 Rust가 왜 제작되었는지 그 방향을 보면 알 수 있다. Rust를 연구하는 모질라 재단의 주력 소프트웨어는 파이어 폭스이다. 구글의 크롬의 성능적인 발전으로 파이어 폭스의 점유율이 낮아지기 시작했고 모질라 재단도 성능 향상을 위해 새로운 엔진을 제작하기로 했다. 그리고 그 엔진을 위한 프로그래밍 언어를 선택하는 과정에서 Rust는 탄생하였다. C.. 2020. 3. 26.
프로그래밍 언어론 1. Orthogonality가 C 언어에서 발생시킬 수 있는 오류의 예를 드시오. -프로그래밍 언어에서 Orthogonality 는 언어를 이용해서 어떠한 기능을 구현할 때 상대적으로 적은 수의 기본 키워드(basic construct)들의 조합을 이용하여 나타낼 수 있는지를 말한다. 예를 들어 C에서 기본 자료형인 in, float, double, character와 배열을 선언하는 기호인 [] 그리고 포인터를 선언하는 *가 있다면 이 기본 키워드 조합을 이용해서 수많은 데이터 타입을 표현할 수 있다. 예를 들어 int[] 나 char* 가 있다. 하지만 C 언어는 Class 나 Structure 에 대한 배열을 지원하지 않아 상대적으로 직교성이 부족한 언어이다. 직교성이 좋다는 의미는 또한 예외성이.. 2020. 3. 26.
프로그래밍 언어론 용어정리 1) Event-driven programming 사건기반 프로그래밍 : 비주얼 베이직과 같이 사용자의 명령, 마우스 클릭, 다른 프로그램의 메시지, 키보드 입력 과 같이 ‘사건’에 따라 제어 흐름이 결정되어 일을 하도록 하게끔 만들어진 프로그래밍 언어방식 2) Cloud computing 클라우드(인터넷) 을 통해 가상화된 컴퓨터의 시스템리소스(IT리소스) 를 요구하는 즉시 제공(on-demand)하는 것이다,. 인터넷 기반의 컴퓨팅의 일종으로 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술을 의미한다. 최소한의 관리 노력으로 빠르게 예비 및 릴리스를 가능하게 한다. 3) SaaS(Software as a Service), ASP(application hosting)의 차이점.. 2020. 3. 25.