'Programming'에 해당되는 글 58건

  1. 2010.06.12 SICP 를 하기위해 Scheme 컴파일러 (2)
  2. 2010.05.31 mmap 사용시 알아둘 사항 (버스오류)
  3. 2010.05.30 gdb 화면 clear 하기 (2)
  4. 2009.10.14 프로그래밍은 역시.. (18)
  5. 2009.06.22 아아 또 실수~! (4)

SICP 를 하기위해 Scheme 컴파일러

요즘에 생각하는게..

프로그래밍이라는게 참으로 기초가 중요하다고 생각해여..

운영체제나, 프로그램 개념이라던가, 소포트웨어 공학이라던가

그래서 "기본이 제일 기본이다" 라는 생각으로 skill 보다는 base를 제대로 닦을수 있는 그런 책을

그런것을 제대로 공부해야... "지금 회사에서 하는 c&p 코더짓" 을 좀 벗어나서 제대로된, 창조적인 "프로그래머"

가 될수 있다는 생각에................ (근데 이런건 아마 학부때 배우는거 아니였나여 ㅋㅋ)

뭐 어쨋던 그런종류의 책을 찾다보니깐  TAOCP, SICP 등이 있더군여

그래서 저번에  TAOCP를 샀는데... 이건뭐 완전 수학책이라 ㅜㅜ...
The art of computer programming 1: 기초 알고리즘 상세보기
도널드 커누스 지음 | 한빛미디어 펴냄
컴퓨터 프로그래밍 입문서. 이 책에서는 기본적인 프로그래밍 개념과 기법으로 시작해서 정보 구조, 다시 말해서 컴퓨터 안에서의 정보 표현, 자료 요소들 사이의 구조적 관계, 그리고 그것들의 효율적인 처리에...

기초 수학도 아니고 이건뭐..

 공학수학은 확실하게 알아야 "이게 이렇게 풀라는 거군하.." 라고 알겠는 수준이더군여

(그것도... 과연 그럴까?? )

뭐 저도 "공학수학" 수업은 들었는데... 공부를 안해서 (대충 한것도 아니고) 하나도 모른답니다 ^^;

그래서 TAOCP는 "책장 장식용" 으로 뽀대나게 두고...

이번에 토익책 사면서  SICP도 샀다는,..

"그래 24" 에서 샀는데 먼저 주문한 SICP는 하루 늦게 오더군여 -_-;

이게 그 "문제의" SICP

컴퓨터 프로그램의 구조와 해석. 1 상세보기
해럴드 애빌슨 지음 | 인사이트 펴냄
『컴퓨터 프로그램의 구조와 해석』 제 1권. 이 책은 해럴드 애빌슨 등이 저술한 것으로, MIT의 컴퓨터과학 입문교과서다. 소프트웨어 제작의 원리와 구성을 바탕으로 프로그래밍의 이슈를 살펴보고,...

이번에 2판 내면서 책이 "상", "하" 로 나눠졌나봅니다..

뭐 저야 출퇴근에 가면서 보기 쉽게 만들어놓으니깐 저야 좋더군여.. 가격차이는 그렇게 차이 안나는거 같군여

상하, 합쳐도... 뭐 지금도 1판 파는데도 많으니깐 2권이 귀찮다 싶으신분은 그냥 1판 사셔도 되고 뭐...

어쨌던...

이책은 좀 특이하게도... 책 서술을 "LISP" (中 scheme) 로 하기 때문에 좀 그렇습니다.. 익숙지 않죠..

알고리즘할때 많이 사용한다고 듣긴 했는데 이걸 직접 할 줄이야.. 하고 경악(?) 했져..

저야 집에서는 윈도보다는 리눅이를 더 많이 쓰는지라 (이 포스팅도 리눅스 - 파폭에서 하고 있죠)

눅스에서 쓸수있는 sheme 컴파일러를 찾으려고 yaourt를 보니깐 뭐 바로 나오더군여..

그래서 설치 했다는.. OS/ 배포판 마다 다르겠지만... 아마 패키지는 다 있을거에요.. 전 아치라서..

#yaourt -S bigloo

로 설치

사용법은........... 그냥 bc 쓰듯이 쓰면 댑니다...

(그러고 보니 이건... 컴파일러가 아니잖아! 인터프리터네..)

 매우 기초적인 문법은 그냥...

소괄호 : 프로시져
부호( +,-,  *. /, ...)
인자1, 인자2, 인자n

순서로 사칙연산은 시키면 되더군여

( 부호 인자1 인자2 )

아래는 그 예.

[~/work]$ bigloo
------------------------------------------------------------------------------
Bigloo (3.3a)                                                            ,--^,
`a practical Scheme compiler'                                      _ ___/ /|/ 
Wed Jan 6 08:19:45 CET 2010                                    ,;'( )__, ) '  
Inria -- Sophia Antipolis                                     ;;  //   L__.   
email: bigloo@sophia.inria.fr                                 '   \    /  '   
url: http://www.inria.fr/mimosa/fp/Bigloo                          ^   ^      
------------------------------------------------------------------------------


1:=> 1+1
*** ERROR:eval:
Unbound variable (from top-level) -- 1+1

1:=> 5 + 5
5
1:=> #<procedure:836f270.-1>
1:=> 5
1:=> 1
1
1:=> (+ 137 349)
486
1:=> (- 1000 334)
666
1:=> (* 7 8)
56
1:=> (+ 1 2 3 4 5)
15
1:=> (+ (* 3 5) (- 10 6))
19
1:=> (define size 2)
size
1:=> size
2
1:=> (* 5 size)
10
1:=> (define pi 3.14159)
pi
1:=> (+ size pi)
5.14159
1:=>



Trackback 0 Comment 2
  1. Favicon of https://khmirage.tistory.com BlogIcon 환상경 2010.06.13 15:35 신고 address edit & del reply

    저도 같은 생각으로 TACP를 샀지만 이건 수학 수식들만 보일뿐 도대체 무슨소린지 모르겠어서 GG 쳤었던 ㄷㄷㄷㄷㄷㄷ

    • Favicon of http://\ BlogIcon lowid 2010.06.15 21:31 address edit & del

      넹..TAOCP는 그냥 장식용으로 쓰라고 만든거 일듯 (......)

mmap 사용시 알아둘 사항 (버스오류)


mmap  이라하면... seek 같은 귀찬은짓 안하고 파일에서 메모리로 사상 받은다음에,

그 메모리를 조작하면 자동(?) 으로 그 (메모리에 변경된 내용)이 파일에 저장되는 참 편한 넘이져.

(꼭 파일 디스크립터가 있어야하는건 아니지만.......)

근데 문제는,,,저 int files의 파일/파일 디스크립터를 open 할떄 주의 해야하는게...

NAME  
       mmap - map pages of memory

SYNOPSIS
       #include <sys/mman.h>

       void *mmap(void *addr, size_t len, int prot, int flags. int fildes, off_t off);

mmap을 사용할때는 Target 이 되는 파일이 write할 길이보다 커야한다. 는거........

(그러므로 (아래서도 적었지만) 당연히 파일크기가 0가 되서는 안됨)

만약 그렇지 않다면 "버스 오류" 라는 메세지를 출력하고 프로그럄이 종료되어버리는 문제가 생긴다.

O_TRUNC 같은 옵션을 open 함수 사용할때 놓어서도 안되므로 주의 하도록 하자,

그니깐 정리하면.... "mmap은 쓸파일의 크기를 변경할수 없다" 는것..

버스 오류가 나면 참고하도록하자.

joinc에 주의사항하나 정도는 적혀있을듯 했었는데.. 없었던거 같다 (아님 내가 제대로 안읽었던가)

kldp에는 비슷한 내용의 글타래가 올라왔던거 같으니깐 구글에서 찾아보세염.

이걸 왜 했냐면......----------------------------

euckr로 변환된 문서를 utf8로 적용하려고, iconv를 쓰다보니...문제가 생겼다

버퍼 크기가 작어서(euckr로 잡으니) 로케일이 변경되다가 말았던것....

저번엔 utf8->euckr로 변경할때는 어짜피 파일크기가 utf8크기가 크니깐, 그냥 utf8파일 크기를 버퍼 크기로 줘도

상관없었는데, 문제는 그 반대의 상황이 문제였던것...

그래서 메모리 사상을 써봐서 해결해 볼까.......... 해서 mmap을 쓸려고 하니깐....

뭐야... 이것도 결국 버퍼 크기 알아야 하잖아... 챗...

그냥 iconv 함수 쓸때 euckr파일크기 * 2 (사실 1.5배만 해도 충분하다고 하지만) 로 최대 버퍼 잡아서 넘겨버렸다..

(http://kldp.org/node/68263)

잘 되네 변환..

이제 터미널에서 글자폭을 알아야 할 차레...

(뭐 정안되면 UTF8용으로 글자폭 알아보던 함수를 다시 한번 수정해야겠다.

지금 만든건 CJK(한글, 한문, 히라/가타카나)는 글자폭을 제대로 알아오는데.............

러시아어(...) 같은건 제대로 못얻어 와서....... wscol인가.. 그건 왜 눅스에 없을까...)

에이 걍 터미널에서 삽질하지 말고 gtk로 ...?..
Trackback 0 Comment 0

gdb 화면 clear 하기

이상하게도(?)

gdb (한국어) 메뉴얼 같은데 보면 화면 을 지우는

(그러니까... clear, cls 같은 명령어)

가 나와 있지 않는데.....

그래서 구글신한테 물어 보니깐 바로 나오는군여..

구글링도 귀차나서 한글로 검색하시는 분을 위해서...

명령어는 간단합니다  그냥 다음과 같이 입력하면 되요.

(gdb) shell clear

물런 이거 응용해서

(gdb) shell ls

같은것도 먹힙니다..

좀더 쉽게 alias 잡으시려고 하면...

(저는 sc로 잡을게요)

(gdb) define sc
(gdb) shell clear
(gdb) end

이렇게 하심 됩니다

참 쉽죠?

gdb는 명령어는 어렵지 않은데 양이 좀 많아서 복잡할뿐이죠 네...
Trackback 0 Comment 2
  1. Favicon of https://khmirage.tistory.com BlogIcon 환상경 2010.05.30 22:36 신고 address edit & del reply

    윈도 플머 아니셨나효?
    왠 gdb인가요?
    윈도 플머시라면 VS 디버거를 쓰셔야죠 ㅋㅋㅋㅋ

    • Favicon of http://\ BlogIcon lowid 2010.05.30 22:44 address edit & del

      회사에선 VS
      집에선 Vim, gdb 고수해여.

프로그래밍은 역시..

그냥 그저 copy and paste가 전부인가??

윈도우 배경이라서 그런지는 모르겠지만 회사에서 하는거보면 이런식..

회사에서 개발 하는 과정
(혼자서 할수 있건 할수없건 간에...)

1  간단한 자료(조각 코드) 는 네이버 블로그, 지식인
그것도 안되면 구글에서 좀 찾다가 codeproject, codeguru, google 코드검색,
가서 관련 소스를 찾는다.

2 내용같은것 보단 일단 예제 소스를 받는다
(어떻게 구현되는지는 관심없음, 단지 그 동작 을 한다는것이 중요 포인트!)

3 내용을 보고 해당 기능을 구현한 부분을 찾는다.
(거의 같은 기능이라면 통채로 그냥 가져다 쓰면 되고)

4 지정 위치에 붙여넣기한다
(간단한 짤막한 소스는 걍 바로 붙여넣기)

5 만약 winapi로 만들어져있거나, 바로 돌리기에 문제가 있는 경우가 있기 때문에 고친다
(class화 한다던가, 전역변수 처리라던가,  헤더파일 인클루드라던가, 라이브러리 추가 라던가...)

6 추가 기능 추가(다른소스와 짜집기)

7 실제로 visual studio 애서 잘 돌아가는지 테스트 한다

8 잘 돌아가면 일단 모듈로 완성한다

- 뭐 어쨋던 회사에서 하는건 생산성 중요한건 알겠는데, 내 생각에 "회사에서 개발 하는 과정" 대로 하다가는

정말 40대 되서 통닭 튀기기 딱 좋을것 같다 (아니 3년 버티기도 힘들거 같아)

이건뭐 내가 코드를 만드는것인지 코드가 나를 만드는것인지........

내 생각과 아이디어 같은건 없고 그냥 있는거 모아서 컴파일 잘되고 작동만 그럭저럭 되게하면 그만인가?

아님 실력이 부족하다고 생각해서 그런건 아예 시킬 생각 자체가 없는것( 이겠지?)...


그런 고로 해서 요즘에 상당히 고민하는 것....................
항상 그렇듯이 생각만함.. 아마 절대 실천으로는 못 옮기고 걍 이리 살거 같다는
(것이 가장 큰 문제 타성에 쩔어서 계속 되는대로 살까봐서...)

1 이런식으로 할꺼면 아예 IT를 때려치고 .....아님 적어도 개발자는 때려 치우고 공무원공부 ㄱ..
- copy& paste로 계속 나 갈것이라면, 아예 컴퓨터는 그냥 취미로 하는게 나은것 같다...
- 공무원이야 칼퇴 되겠다 어짜피 솔로로 살테니깐 나머지 시간에 계속 플밍하면 되겠네...

3 다니면서 자기계발 해서 대기업 (낮에는 노가다 저녁에 집에와서 눅스공부 -_- )
- 제일 현실성 있는 방향
- 안정성은 높지만 녹록치 않다... 윈도우 리눅이 다하려니 넘 복잡..(차라릴 윈도우는 버려도 니눅이는 버릴수 없음)
- 근데 실제로 중소에서 일해서 대기업 갈수나 있냐?

4 다 때려치고 혼자 독학해서 리눅이쪽으로 재취업
- 내가 제일 하고 싶은거...
- 회사는 환경도 좋고(야근 거의 X 수습이라 그럴지도) 하는일치고(?!)는 pay도 뭐 적은편은 아니고.. 해서 그게..좀.망설;
- 했다간 아마 맞아 죽을지도 몰라 ... 돈 못번다구 ㅜㅜ
- 리스크가 가장 높음...
- 2년전에 휴학한다고 한 짓거리들 생각하면 (.....) 그리 시간대비 효용으론... 안좋을듯...한....
(1년동안 집에서 식충이 취급(!) 에 리눅스만 팠으니............ 그렇다고 오픈소스로 뭘 만든것도 아니라서)
- 아직 경기가 회복됬다고 말하긴 그래서... 과연 재취업이 될까가 의문...

5 대학원
- 만약 간다면... 자대인가 아님 타대인가...
- 석사까지인지 박사까지인지...
- 유학은 갈것인지...
- 결정적으로 돈이 없네열 ㅋㅋㅋ

님들 조언즘 ㅜㅜ
Trackback 0 Comment 18
  1. 똘이대마왕 2009.10.15 03:36 address edit & del reply

    음..누군가 프로그래밍을 취미로 하라했는데.. 그럴려면 공무원 고고씽.

    • lowid 2009.11.09 22:34 address edit & del

      공무원이라..되면 좋겠죠..
      근데전산직 공무원은야근을만히 한다는소리가 있던

  2. sakuragi 2009.10.15 10:31 address edit & del reply

    이왕 대학원 가려면 박사까지... ^^
    그리고 대부분의 경우, 이상과 현실은 다르다는 것...
    죽을 때 까지 이런 고민은 해야 할듯해요~ ^^
    저도 요즘 하고 있는 고민이기도 하구요.

    • lowid 2009.11.09 22:35 address edit & del

      대학원 좋긴한데 자대 대학원 아니면 가기가 힘드니까 그게 문제...
      그리고 제가다니는데는 대학원이 좀 그래서 그것도 그렇고.. 뭐 역시나 이 일 계속하는동안은 계속 이런 고민 하면서 살아야할지도

  3. 상자 2009.10.16 12:11 address edit & del reply

    머.. 들어가서 얼마 안되어선 다 똑같은것 같아요.
    좀 지나도 머 별로 다를꺼 없을듯 -_-;

    • lowid 2009.11.09 22:35 address edit & del

      역시 그런건가여 ㅋ

  4. 자잔구남자 2009.10.20 20:55 address edit & del reply

    공무원도 칼퇴 아니래여. = _=
    근데 난 어차피 인문학과 출신이라 딴짓은 전혀 할 것도 없고
    그저 닥치고 남은 게 9급뿐임. ㅜㅜ 어쩄든 적당히 먹고 살 길은
    되니 그저 황송한 건가(...)

    님하 그래두 우린 플빡을 써볼 수 있는 시대에 살았다는 것만으로도
    행복할 수 있지 않을까영

    • lowid 2009.11.09 22:37 address edit & del

      플빡 만세!

  5. 자잔구남자 2009.10.20 21:02 address edit & del reply

    나는 플머가 아니지만 대한민국이 전체적으로 돌아가는 게
    니눅스에 유리하지 않슴. 그거 혼자 잘나서 출세해서 잘 먹고 잘 살자 판이라
    오픈 소스 그거 먹는 거임 우걱우걱 우왕 님 졸 잘났...
    이 아니라 재섭서영 소리 듣는.

    그거 고분고분 안 튀게 최대한 자기 앞날 보장되면서
    취미 생활 보장 시간 뽑아낼 수 있는 길을 찾는 게 최선인 듯.

    다들 돈이 최고고 집사는 게 일이지 오픈 소스 따위
    해도 그만 안 해도 그만임.

    따라서 자기 혼자 존나게 뭘 하려고 해도 남들과 같이
    안 하면 안 됨. 오픈소스가 그런 것임.

    양키 덕후 새퀴들 프로젝트 하는 거 보면 개장난 아님.
    프로그래밍도 그렇고 게임 메뉴얼 위키고 그렇고.
    막 십수 년전 명작 게임을 완전 백과사전 수준으로
    위키 사이트를 만들고, Dosbox란 걸 만들어서 아예
    도스를 에뮬레이트해서 그 안에서 겜 돌리고,
    해커들이 직접 버그 패치 제작해서 오류 제거, 새 기능 추가하고(...)

    한국에서는?

    뛰어난 몇몇이 좀 해보겠다고 깝싸다가 찍 싸고
    걍 K???? 사이트에 모여서 허세나 부리고(...)

    • lowid 2009.11.09 22:39 address edit & del

      고만 고만하게 해서 취미시간 나는건 공무원 뿐이 잖냐능...
      우리나라두 서양쪽보다는 아직 사용자층도 그렇고 오픈 소스 개발자들도 아직은 앏지만 그래도 이렇게 조금씩이라도 해가면 빛을 보겠....져?
      역시 서양애들처럼 취미로 오픈소스할려면 외국나가는수 밖엔 없는건지..쩝...

  6. Favicon of https://ranoking.tistory.com BlogIcon RanoKing 2009.10.21 00:33 신고 address edit & del reply

    우리나라처럼 빡센데도 없을거 같으심..
    돈관련 된데면 경쟁치열하고.. 남 누르고 올라가기 바쁘고..

    공무원은 9급은 안습이고 호봉좀 쌓여서 딱 7급까지만 하면 적당함
    6급부턴 계장급인데 이자리가 좀 관리하기도 그렇고 책임도 있어야해서
    어지간히 사교성 좋은거 아님 버티기 힘듬. 개막장가면 또 그거대로..

    • lowid 2009.11.09 22:40 address edit & del

      역시 땅덩어리 조난 작고 자원은 지지리도 없는
      이런나라에선 어쩔수 없는듯...
      있는건 사람뿐이니....

  7. zeper 2009.10.21 20:34 address edit & del reply

    현실은 시궁창이라 그런거군요..

    • lowid 2009.11.09 22:40 address edit & del

      네 현! 시! 창! ㅜㅜ

  8. Favicon of https://khmirage.tistory.com BlogIcon 환상경 2009.10.25 12:07 신고 address edit & del reply

    모든걸 뛰어넘는 초고수가 되셔서 훗 이딴거쯤이야 하는 실력자가 되심 됩니다 >_<=b

    • lowid 2009.11.09 22:41 address edit & del

      그러케 하려고 조금씩 하긴하는데 영 결과가..

  9. Favicon of https://lsm1987.tistory.com BlogIcon 에그 2009.11.02 17:54 신고 address edit & del reply

    음;; 그렇다고 이미 있는 소스를 다시 처음부터 개발하는건 좀 비효율적인거 같아서 저렇게 하는게 아닐까;;
    프로그래밍뿐만 아니라 어느 직장을 가던 다 비슷할거 같애... 일단 현상유지만 하자! 당장 문제 없으면 오케이! 이런거...
    뭐 나는 그런 속에서 우리만 열심히 한다면 그게 우리 가치를 더 올려줄 기회라고 생각하고 있다네!

    • lowid 2009.11.09 22:42 address edit & del

      그래도 그게 어떻게 돌아가는지는 알고 붙여넣기 해야하는데 그렇지 않는 경우도 있단말이지...
      나중에 어쩔려고 -_-;
      머.. 열심히하면 언젠가 빛을 보겠지 포기하지 않는한

아아 또 실수~!

wchar_t* Game_Word_AnsRandom(UINT ch_cnt)
{
    wchar_t *ret;

    // string 이기때문에 NULL을 위해
    if((ret = (wchar_t*)calloc(ch_cnt + 1,sizeof(wchar_t))) == NULL)
        return NULL;

    srand(GetTickCount());
    
    while(ch_cnt >= 0){
        ret[ch_cnt] = (wchar_t)rand()%26 + 97;
        ch_cnt --;
    }

    MessageBox(NULL,ret,0,0);
    return ret;
}

아 또 실수 했어요 ...

이번엔 그래도 디버거가 제대로 작동했기때문에, 금방 알아냈답니다 ㅋㅋ..

게다가 상큼하게 세그멘테이션 폴트도 내 주는바람에 더 쉽게 찾을수 있었죠..

하지만 이런경우는 저도 처음이라서 첨엔 쪼금 당황했는 (한 3분 걸렸 ㅋㅋ)

확실히 이렇게는 안써보니깐 좀 미묘하군요 ㅋㅋ.

데이터 타입의 향연인가... 앞에 포스팅도 그렇게 이것도 그렇고 ㅋㅋ..

'Programming > C' 카테고리의 다른 글

간단한 디버그 함수  (0) 2010.08.16
오늘도 실수.. iconv  (0) 2010.06.24
아아 또 실수~!  (4) 2009.06.22
주의력 부족  (2) 2009.06.22
이진트리를 만들고나서....아 망했어요...  (2) 2009.05.25
리눅스용 한글2008 체험판 크랙하기  (26) 2009.04.26
Trackback 0 Comment 4
  1. Favicon of http://blog.naver.com/jhpark9404 BlogIcon 없는국번 2009.06.22 16:14 address edit & del reply

    니가 그렇지 뭐

    • lowid 2009.06.22 16:40 address edit & del

      ㅇㅇ

  2. Favicon of https://zeper.tistory.com BlogIcon zeper 2009.06.25 19:47 신고 address edit & del reply

    이해가 안된다능.. 뭐죵?

    • lowid 2009.06.30 23:17 address edit & del

      UINT(unsigned int) 값을 0보다 작게 했어염...
      고로 값이 다르다능..

prev 1 2 3 4 5 6 7 ··· 12 next