분류 전체보기
-
Free Pascal(FPK Pascal) 2.2.4프로그래밍 언어/설정 2009. 7. 7. 20:17
여기에서 devpas192.exe(http://www.bloodshed.net/dev/devpas192.exe)를 다운 받아 설치한다. { or 여기에서 fpc-2.2.4.i386-win32.exe를 다운 받아 설치한다. 테스트 콘솔 창을 열어 C:\FPC\2.2.4\demo\text로 이동한다. C:\FPC\2.2.4\demo\text>fpc hello C:\FPC\2.2.4\demo\text>hello } { ... } program hello; begin writeln('Hello world'); end.
-
컴파일러컴파일러 2009. 7. 6. 19:21
어휘 해석(Lexical Analysis) 스캔 어휘 해석기(LEXICAL ANALYZER) 또는 스캐너토큰열을 생성 스캐너 제너레이터 구문 해석(Syntax Analysis) parse추상 구문 트리 파서 제너레이터 의미 해석(Semantic Analysis) 중간 코드 (operation ,left operand,right operand,result,,Lbl)) 1(==) 2() 4(=) 6(!=) (MOV, A,,B) (ADD, A,B,C) (NEG, A,,B) (JMP, ,,,,Lbl) (TST, A,B,,,Lbl) Label run-time operations Code Generation (MOV, A,,B) ==> LOD R1,A STO R1,B (ADD, A,B,T1) ==> LOD R1,A..
-
오너 드로우GUI/컨트롤 2009. 7. 6. 16:38
리스트 박스 LBS_OWNERDRAWFIXED|LBS_OWNERDRAWVARIABLE c.f. on WM_CTLCOLORLISTBOX 메뉴 버튼 c.f. on WM_CTLCOLORBTN 콤보 박스 리스트 뷰 WM_PAINT를 오버라이딩? 부모 윈도우가 대신 그릴 수 있게 해준다. // 문자열이 아닌 {고정 크기 스타일|가변 크기 스타일} on WM_MEASUREITEM .itemHeight on WM_DRAWITEM .CtlType .CtlID .itemState ODS_SELECTED .hDC .rcItem .itemData
-
Atomic 타입 - MASM프로그래밍 언어/데이터 타입 2009. 7. 6. 01:27
불 false는 0, true는 1로 가정할 수 있다. mov AND 비트와이즈 OR 비트와이즈 NOT 1의 보수 문자 부호있는 정수 SBYTE/SWORD/SDWORD ; DB/DW/DD movsx ;mov CMP neg 2의 보수 add sub imul cbw/cwd/cdq idiv 단정도(single precision) 실수 REAL4 ; DD fld fstp fadd fmul 배정도(double precision) 실수 REAL8 ; DQ 참조 사이트: http://www.website.masmforum.com/tutorials/fptute/index.html http://jjjryu.tistory.com/entry/MASM-2
-
MASM프로그래밍 언어/expression 2009. 7. 6. 01:11
불식 false는 0, true는 1로 가정할 수 있다. mov AND 비트와이즈 OR 비트와이즈 NOT 1의 보수 산술식 movsx ;mov load/store to/from ax/bx neg add sub imul cbw/cwd/cdq idiv TITLE Addition and Subtraction (AddSub3.asm) INCLUDE Irvine32.inc includelib irvine32.lib .data Rval SDWORD ? Xval SDWORD 26 Yval SDWORD 30 Zval SDWORD 40 var1 SDWORD 3 var2 SDWORD 6 var3 SDWORD 4 var4 SDWORD ? .code mainCRTStartup PROC ; Expression: Rval = -..
-
표현식 변환컴파일러 2009. 7. 5. 02:23
심볼 테이블 miniC.l %% [a-zA-Z] { yylval = alloc(TOKEN); return OPERAND; } [ \t] ; . return yytext[0]; \n { lineno++; return yytext[0]; } %% yywrap () { return 1; /* terminate when reaching end of stdin */ }miniC.y %{ #include typedef char * string; #define YYSTYPE string #define TOKEN 1 #define TEMP 0 int temp = 0; struct node { char name[3]; struct node * next; }; struct node * tlist = NULL; char *..
-
MDI - Win32GUI/컨트롤 2009. 6. 30. 02:14
복수 개의 문서 타입(차일드)을 지원하려면 메뉴도 그 수만큼 있어야 한다. DefMDIChildProc() WM_MDIACTIVATE MDICLIENT WS_CLIPCHILDREN WM_MDISETMENU WM_MDICREATE MDICREATESTRUCT WM_MDITILE MDITILE_HORIZONTAL WM_MDICASCADE WM_MDIICONARRANGE CreateMDIWindow() CreateWindowEx() WS_EX_MDICHILD DefFrameProc() TranslateMDISysAccel() IDR_MENU1 MENU DISCARDABLE BEGIN POPUP "File" BEGIN MENUITEM "New Draw", ID_FILE_NEWDRAW MENUITEM "New E..
-
키보드/마우스 버튼 - Win32GUI/컨트롤 2009. 6. 30. 02:04
액셀러레이터 LoadAccelerators() TranslateAccelerator() IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE BEGIN "A", ID_FILE_MENU1, VIRTKEY, CONTROL, NOINVERT ... END int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow) { ... hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL,(HMENU)NULL,hInstanc..