본문 바로가기

Ken Thompson의 Reflections On Trusting Trust 들어가기 “Reflections On Trusting Trust”은 Ken Thompson의 논문 내용으로 총 3 Stage로 구성되어 있다. 내용은 백도어에 대한 것으로 특히 C 컴파일러에 대해서 다룬 글이다. 개인적으로 제목을 “신뢰를 신뢰하는 것에 대한 고찰”이라고 직역할 수 있을 듯 하네요. 다르게 하면 “신뢰에 대한 재고찰” 정도가 될까요? 그리고 샘플 코드가 C 언어로 되어 있습니다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ Stage 1 Self-reproducing program은 콰인(quine)으로 소스코드가 자신 복제하는 프로그램이다. 결국 프로그램이 다른 프로그램에 의해 쉽게 작성될 수 있다. 아래 메인 프로그램이 의해 생성되는 .. 더보기
Rust 배우기1 - 기본 들어가기 이전부터 Rust 언어를 들어었지만 관심을 가지기 시작한 시점은 마이크로소프트가 핵심 코드를 Rust로 작성한다는 소식을 알게되었을 때이다. 러스트가 시스템 프로그래밍에도 사용할 수 있는 언어이고 C++을 대체하고 있다고 한다. 평소에 C++에 관심이 있어서 이번 기회에 한번 Rust을 정리하고 갈려고한다. 이전에 Kotlin을 정리했을 보다 시간이 다소 걸리에 시간을 두고 접근해야 한다. 기본에서는 가급적 Rust 언어 자체에 집중하고 표준 라이브러리에 대해 가급적 다루지 않을려고 한다. 또한 포인터와 참조에 대해서 어느정도 이해하고 있다고 가정하고 최대한 간략하게 설명하고 가급적 예제 중심으로 기능을 설명하려고 한다. 작성자: ospace114@empal.com, http://ospace.t.. 더보기
C로 객체지향 흉내내기2 거의 "Object Oriented Programming in ANSI C"내용을 번역하는 수준이군요. 사실 중간에 내용은 임의대로 제 마음대로 이해한 내용으로 채워넣은 경우도 있으니, 혹시 의문이 들거나 이게 아니다 싶으면 원문을 참고하세요. 이번에는 동적 링크와 제너릭 함수입니다. 동적 링크는 정적링크와는 다르게 실행시점에 실행되는 코드가 결정된다. 제너릭 함수란 어떤 타입이는 모두 실행할 수 있는 함수이다. 먼처 C++과 비슷하게 생성자와 소멸자를 보고 메소드와 메시지 클래스 등에 대해서 다뤄보겠다. 작성일: 2009.07.26 (http://ospace.tistory.com/), ospace114@empal.com 생성자와 소멸자 C++을 해봤으면 생성자와 소멸자는 잘 알 것이다. 잘 모르게 구글.. 더보기
C로 객체지향 흉내내기1 아휴~ 일을 또 하나 만들어버렸다. 아직도 작성중인 자료가 많은데, 또 다른 작성중 문서를 만들어 버렸다. 언제 끝날지 모르겠다. 내용도 쉽지 않고, 이해하기도 어려워서 틀리거나, 이건 아니다 싶은 것도 많을 것 같다. "Object Oriented Programming in Ansi C"(이하 OOPC)라는 글을 참조 했다. 내가 찾아본 내용 중에 내가 의도했던 것과 가장 비슷한 내용이었다. 다음 내용은 상당 부분 앞의 글을 많이 번역했다. 사실 C로 완벽한 C++과 같은 구현한 한 코드들도 있다. 해당 글을 읽다 보면, 사용하기 복잡하며, 실행속도도 C++에 비해 그다지 큰 향상이 없다고 한다. 오히려 떨어진다고 한다. 이부분은 내가 검증해보지 못해서 장담하지 못하지만.. 이 내용은 하나의 컨샙으로 .. 더보기
[CUnit] C에서 Unit test 하기 들어가기 Unit test 필요성을 느끼면서 어떤 툴을 사용할지 고민이다. 예전에 C++에서 CPPUnit테스트를 사용했었는데, VC환경에서 호환이 잘 안되는 문제점이 있었다. 완전히 안되는 것이 아니고 GUI와 호환성 문제가 있었다. 작성자: http://ospace.tistory.com/(ospace114@empal.com) 2008.12.31 최근 C언어를 사용하는 프로젝트를 진행하면서 테스터 프로그램을 선택하기 위해 구글링을 해보았다. 최근에 이슈되는 것 중에 GTest가 있었다. URL: http://code.google.com/p/googletest/ 대부분 사용하는 사람들이 공통적으로 개발자를 생각하였다. 잘 만들어졌다라고 한다. 그러나 C++용이다. 이건 나중에 살펴보고 C용 unit te.. 더보기
[c/c++] 구조체 복제에 대한 이야기 가지고 있는 자료을 똑같은 복제본을 만들어야 될때는 매우 많다. 수십가지 데이터 혹은 수십개의 트리로 구성된 구조체를 일일히 하나씩 값을 넣는 다는 것은 곤혹스러운 일이 아닐 수 없다. 다음은 구조체에 대한 것으로 구조체를 복사하는 것에 대한 내용을 다루겠다. 작성자: ospace (ospace114 at empal.com) ospace.tistory.com/ 전형적인 구조체 복제 전형적인 구조체 복제 사용법은 다음과 같다. struct tag_Sport { TCHAR* pName; TCHAR pPlayer[10]; int score; }; int main() { tag_Sport soccer0 = {NULL, _T("Ospace"), 0}; tag_Sport soccer1; TCHAR name[] = .. 더보기

반응형