벤자민 버튼의 시간은 거꾸로 간다

영화를 다 보고 나서 순간 멍해졌다.

영화는 나에게 무언가 메시지를 던지는데, 나는 그것조차 이해할 수 없을 정도로 삭막해진 것일까…

우선 시나리오의 소재가 너무 좋다. 벤자민은 인생을 거꾸로 살게 된다.

이미 보통 사람들의 인생의 마지막을 경험해 보았기에 인생을 진정한 의미를 찾아가게 되고 깨닫게 된다.

하지만 우리는 늙어서 더 이상 움직일 힘이 없을때 그걸 깨닫게 된다.

나도 아직 젊기에 나의 인생에 대해 간결하게 정리할 수가 없다.

의미있는 삶을 살고 싶다. 아니… 그러도록 노력할 것이다.

Share Comments

프로그래밍은 상상이다

프로그래밍은 상상이다 표지

임백준씨의 새로운 책이 나왔다는 사실을 접하고 곧바로 학교 도서관에 책을 신청했다.

책이 오기까지 한달이라는 시간이 걸렸지만 항상 돈이 부족한 학생이라 도서관의 신세를 지기로 했다.

그동안 기고했던 칼럼들을 모아놓은 책이어서 저자의 견해를 잘 이해할 수 있었다.

역시나 책을 읽는 내내 저자의 깊이있는 내공을 엿볼 수 있었고, 칼럼 하나하나 읽는 사이에 잠시 생각할 시간을 가질 수 있어 좋았다.

태생이 공돌이라 문학적 소양이 부족하지만 딱딱한 기술서가 아닌 이런 책들을 읽는 것이 더 좋다.

이런 책들을 많이 읽어서 나의 프로그램에서도 추상적인 냄새가 날 수 있도록 노력해야겠다.

Share Comments

프로그래밍 언어론 Lex와 Yacc을 이용한 Mini C 컴파일러 제작

개요

lex와 Yacc을 이용해 간단한 연산이 가능한 Mini-C 컴파일러를 제작한다.

입력코드

1
2
3
4
5
a = 12 + 34;
print a;
b = 56 - 34;
print b;
print a > b;

결과화면

과제후기

과제를 하면서 나에게는 너무 어려운 듯한 느낌이 들었다. 우선 Lex와 Yacc에 익숙해 지지까지 많은 기간이 걸렸고, 도중에 나오는 에러들에 대처하는 것에 익숙치 않았다. 참고도서의 한정된 수량으로 학교 도서관에서 대여를 못하였고, 인터넷의 여러 참고 자료를 보고 하였으나 이해하기가 어려웠다. 하지만 이렇게 과제를 마치고 보니 어느정도 이해했고 익숙해진 느낌이 든다.

사칙연산은 힘들지 않게 하였으나 변수에 값을 저장하는 방식이 이해가 안되어 시간이 많이 지연되었다. IF-ELSE문이나 FOR문 등은 여러번 시도해 보았으나 성공하지 못했다.

흡족한 마무리를 한 것은 아니지만 과제를 하면서 많은 지식을 쌓았다는 것에 만족한다.

Share Comments

Warning Incompatible Implicit Declaration of

GCC 컴파일을 하다가 다음과 같은 경고가 떴다.

1
> warning : incompatible implicit declaration of built-in function

해결책은 해당 함수의 선언이 포함된 헤더파일을 include 해주면 된다.

Share Comments

Ubuntu QT4 Eclipse 개발환경 구축하기

시냅틱으로 Qt4 관련 패키지 모두 설치한다.

이클립스 Qt 플러그인을 받는다.
http://trolltech.com/developer/eclipse-integration

Window -> Preference -> Qt -> Add 를 선택하고…
Version Name : Qt4
Bin Path : /usr/bin
Include Path : /usr/include/qt4

tumblr_inline_n3o3ilMu7X1rubmdv.png

프로젝트를 생성해 신나게 코딩한다. ㅋ

Share Comments

바이트 배열을 16진수로 변환하기

출처: Beginning Cryptography with Java - Wrox

1
2
3
4
5
6
7
8
9
10
11
public static String toHex(byte[] data) {
StringBuffer buf = new StringBuffer();
for(int i = 0; i < data.length; i++) {
int v = data[i] & 0xff;
buf.append(digits.charAt(v >> 4));
buf.append(digits.charAt(v & 0xf));
}
return buf.toString();
}
Share Comments

문자열이 숫자인지 판단하는 메소드

출처: http://www.devx.com/tips/Tip/39748?trk=DXRSS_JAVA

public static boolean isNumber(String s) {
    try {
        new Double(s);
        return true;
    } catch(Exception ex) {
        return false;
    }
}
Share Comments