Click here to load reader
Upload
tranhuong
View
223
Download
0
Embed Size (px)
Citation preview
My Program Lesson
By MuziSoft08
1. !
2.
3.
4.
5.
6. ,
7.
8.
13
14
17
20
20
21
21
23C++
24
24(1)
24pc
25
26
27
28cpu
28cpu
29
31
32
33
35
35
36
37
37GUI
38
39
40(2)
40
41
43
46
46
47
47
48
48
49
50
51
52
52
53
54(3)
54,
54
55Cruby
56RUBY
57C++ruby
57C++JAVA
58.netJVM
58RUBY
60
60CC++
61Cc++
62c#,javac/c++.
63VB,DELPHIRAD
64(4)C
64CC++
65C,,
65C
66C
66
67:
67C
68
69C(JAVAC)
70C
71COOP
72C:
73
74TypeDef
75
76
76
77
77
81Static
82
82
83
84void
85(5)
85
85
86
87(6)
87
88+
89
89
89
91vector
91
94
95void creat_btree()
97void creat_btree()
99creat_btree(int *data,int len)
101200
103,
105(7)
105Minlearn(5)C++
106C++
107OO
108
109
110MetaProgramming
111
111(8)
111
112
113
113
114
114.
115
116
116
116
117
118XP
119
119
119
120
120:
120:
121
123
129Yake(World&GameShowGeneric)
134:GVWL1.0
134WorldLogicGeneric
135Yakegvwllua
135:NotWar3 Demo
135 NotWar3
135:
135
135
136Java
137,
138Linux3D
138
139
139shell
140Debug
140
140windows
141Minlearn ruby (5) P2P
141Minlearn ruby(4) WEB
142
142Minlearn(3)
143Minlearn(2)
143Minlearn(1)
143
144Minlearn ruby
146
147
148XML
149
149SOA
149
151desktop,web,internet,WEB
151
152
152
153Scheme
155
155
156
156
157
157
158core learning and min learing
158
159
159
159.
160
161
162
162OO
163
163
165
166
166
171
171
173
174
174
175Unicode
176Windows
177XML
178GUI
178
179MFC
181
183.NET
184
185
185
189
190
192DSL
193
194
195
196
197
198
198RTTI
200
201
201This(C++)
201
201
202
203STL
204
204
204
204
204
205
205
207
208ADT
210OO
211
212OOP
213Interface
214
215
216
216
217
217
217
217
217
218
218
218
219
219
219
220OO
221
222
222
223COM
224DCOM
224Sun
225J2EE
226EJB
227
227
227
()()
,,,(,),
,
,,(, )
,,, ,(,),,(,)
,,,
,,
()()
()(,)
()
Idioms()
1.IDEIdioms()---
2.Idioms(--)---DOS
3.Idioms-----
4.Idioms---
(1-4)XMLUMLXPANT
(C,Java)(),Idioms
(C++, -),,)
),(),
()
,(),, ,
!
, ,
()(),,
1. .
2. C++,
3. ,(,)!
4. NotWar3War3()
() ()
1. ()
2. ()
3. ()
1.()C++,JAVA,,JFC
2. ()
3. () OOJ2EEJ2EEOOJ2EE
4. (,)
13(123)4
1.----GVWL1.0
2.-----NotWar3Demo
3.
(),,()
ITOO
,WEB(internetinternet,webweb) OSOSnativeOS OS
, (,)
,,,, , ,Lisp Yacc ,, ,,,
C++JAVA Ruby,,,Ruby C++STLBOOSTJAVAJDKJ2EE,, =+,,=
C++J2EE cast C++C++ C++,,C++JAVA ,,,,
OS ,,=,,=,,"","","",,,,,
,,OO,
OO
C
CPUCPUIOCPUOSOS
templateC++C++C++IO,,,windows,
CC(oopcrtti)C(C)javadsl(Cjava,,javaC)javajavajavaCjavaOOjava
C
javaCjava,C
1)
2
3.........
4)
5),dsl()..
C,,,,(),,,C
,C,LUA,RUBY,C.
,,,,,,,,,,(C),,,,,,,,
RUBYC,,RUBYC,,RUBY,,RUBYOORUBYIO,,?,,,,,,,,,RUBYOOSTL,,OOSTLRUBYRUBY,,RUBYC,,STL ? C ,,C++RUBY ,,..
,,,(),,:,CPU,,,,,,,,,,,,,,,,,,,,C,,(C+,),,,C,RUBY,JAVA,,,,,,,,,"",,,,OO,..,,JAVA.
CRUBY?,C*(OSC,C++,JAVA,RUBY),,CJAVARUBY ,,,,COSOS,,RUBYC++JAVACCRUBYJAVAOO Cembed copenglJAVAJAVA,,WEBI/OTCPHTTPWWWSOAPJAVAJAVAOO CRUBYRUBYCBIND,,
C,,CWINDOWS,
,,(), ,,,
C++
,C++HELLO WORLDIDE,,,OO,,
(OO,),(,,,,,),,,,,IDE,,,,,OO.(,RUBY,,,,,RUBY.,,,C++,C++)
C++,,,
C++,
1,IDE,make,install,,,,IDE
?2,,STLLIB,,,,,C++,,,,STL.
3,,OO,,C++,OO..,,OO,,.
4,,,OO,GP,OO,.OO,,,OO,..,,,..
5,,,.,,
6,,,,,,,,,,,,.,,,,,,,,,,,,(C,C,,C,,)
,!,.
?,,,,,,,,,,,,,,,,.;.
?,
W
(1)
pc
PCPC,PCPC
pc ,()PC19818ibmIBM PCintel8088 CPUMicrosoftMS-DOS,,intelPCCPUWintel
IBMIntelCPUPC()
::PC():1,:Cpumsdos
..
(stacksreg)
stackCPUCPUCPUreg
""()
ramCPU
CPU
.?CPUCPUCPUPCPCwintelpc.
CPUCPUdmaCPU(CPU)cpuCPU
0,1CPU
cpu(CPUCPUCPUCPUIO)cpucpu
CPUOScpu
cpu(cpu)()()()()
...
201mb(1mb)16161mb16(64kb,216)16464kb.
MB
32CPU4g32()3232C
CPU4G(4gCPU4g)..4g(CPU)
4g4g()..4g4G
4g80386CPU4gCPUpaeCPU
CPULDTGDT()
mov ds,ax, axdsds(32),,,CPU
CPUtildtgdtldtgdt()4g..cpl,dpl,rpl..
cpu
pdtr,pdbr,
cpu
CPUCPU()tsstss
calljump,
tss
CPUCPU
cpu
p4winxp(CPUOS)CPUOSCPUOSCPU(shellos)CPUCPUosCPU
windowslinuxCPU(x86)OS()
CPU()
CPU(CPU)WindowsSEHCPU
CPU(cpu)CPU()
CPUCPU(rubyCPU)
)CPU
CPUregreg
.c runtime dllnative runtimejvmC(regstack)
REG()REG
(stack)JVM(reg,,jvmx86regx86regreg3d render machine)
(,CPUpeCPUdatatext)CPU,regstack()stack
intelcpu(CPUREGSPREGREG)(=cpu)intelstackreg
x86(C)()
PE()()
(sp reg)()'bp"+-bpsp-bp
x86C(push)(,)()spsp(sp)
CpascalC
8086/80882016
16(16)1616(),()216(1048576),1048576,,104857616CPU1024kb16(CPUCPU)CPU""(CPU)1MCPU,()1620CPU1M???()1M64k64b,802862432
CPUCPUCPUCPU,(CPU,CPUCPU,CPU,,,CPU,CPURAM,),
(CODEEXE------
------dataEXE(),EXEDelphiexe()EXEEXEDLLdllEXEEXEEXE(),EXEDATAEXEEXEDLL()(DATADLL)"",4GB(2G2G4GB2GB,GB,)4GB32(GB4GB)KBwindows()()"",FLATsegment,FlatcodedataCSDS4GBFLATCS,DS()FLATEXERAW FILE(RAW)CPU""EXE(32RAW FILEsectionPEEXEPEXMLIDE3Dxml)
Linux,,,,,,,,,,,,,CPU,socketOS,OS,,,,SDL,..
,(KERNEL),,(OS),,X,,,APP,,,,WINDOWSGUI,OSX,(LINXUWINDOWS),,,,UBUNTUAPP(),,,,UBUNTUAPP,UNBUTAPPAPP
apacheC,
?,,,()(),(),,(),()..,
(,,,,,,,,)
(),IF,,THEN,,,,,,,.,,,(,RUBY)
,LINUX KERNEL,GNU LIBC,,,LINUX,,SHELL,,
,,,VM,
,,,,(,OO),(),(),EXERPM,RPM
(,andro,,,,,LINUXAPP,,GUI)
,,API
,OS,(EXE),WindowsEXE.LINUXRPM,
,WINDOWS,,,,?,(),,WAR3,,,,,,
EMBEDED,ARM()PC X86,,
,,SDL,SDLC,,SDLGTK,SDL(DXOOCOM,)
,X,/,3D,,,
SHELL,SHELLRUBY SHELL,()
,C(GNU LIBC,OO,,OS KERNEL,RUBYSHELLOO),RUBYC,,,GC,OO,RUBY(RUBYC?,C++RUBY,)
RUBYCJVMJIT,JVM
CRUBY(RUBY):
C,JAVA,,GOOGLE,C++,
Ca
,,,(,),,JVM,JVM.
IDE,OS,JVMHOTSPOT().
,P2P(P2P,P2P,),JXTAC,WEBIE,,WEB,,WEB,RUBYCWEB..
GOOGLE EARTH3D(),,
XML,OODB,,,(XMLDSL?,OS KERNEL?KENRL?)
,10,.
FlashSSD,,,,(WEB2.0,)
,,
OSOS(IDE)OS
GUI GUIGUIGUI(XMLXML)OS
OSOS
GUI
CPU(IO)CPUintelCPU
,,..
CPU()
posixunixOSOSsokcetOS
COSwindowsunixCOSC
unixunixCunix,funixCCCunixunix,,unixposix,posix.
C++(C++)CCC++C
(,,OS)(,),,,,,
=
(,)
,(,,CI/O),,JVMJAVA,OS,..JVM,,JAVA.
(,,OS)(,),,,,,
jvmjavajvmjvmjvmrmi,,java
java,,
IDECPUintelCPUintinterrputint 3CPUCPU
,,CPU
OSCPUJVMJAVA(JITJAVA)CWINTELwindowsruntime..fs
GUI
C,C ,C,C,C,,,,C,,,C.
WEB,WEB,GOOGLE DESKTOP SEARCH,GNOME,NETWORK,OS,GNOMEBELGEL,,,WEBHTTP(),WEB,,..
GUI,SHELLKERNEL,Unix,MIT X windowsCORE,,SUN(SUN DESKTOP SYSTEM ),,OPEN LOOK MEIRF,,B/C,C++CLASS,CGNOME,,().
GUI?
GNOME,,/CD/DVDBT,,,,,HTML,GNOME,WEB,IE,FOX..corbaGNOMEXML
GUI
GUICUICUIGUI
CPU()CPU+OSSOCKETPCPCWEB+JAVA(70%)(WEB)XMLXML,,,lua ,,..
PC
OSGUIOSLINUXWINDOWSGUI
LINUXSDLXMLlinuxCUIGUI,SDLargr
SDL
SDLXML
GUICwindows.
UNIXshellwindows()"producemenu(10000)"10000CCwindows apiCGUIC
CCHCmsyslinuxlinuxwindows.
makelinuxIDE
vimVIMwindowsIDE
(2)
(),()
,
(()()),,
()
(,,,),,
()
()w0->w1,w0w1,
(,,)
()
10.2
S(S0)
I
f()
,,305,1025,303030
,,
:
s0() ,,
s1(5),,
s210
s3(15),,
s4(20),
s5(25),
s6(3030,)
:
i0(5) 0,
i1(10)
i2(25)
i3(O)
i4(R)
:
o0(n)
o1(5)
o2(10)
o3(15)
o4(20)
o525
o6()
o7()
+=>+
1025,,,5
s0(, ,s0)
10(i1),s2(1010)
25(i2),,S6()
5(o1),,
(i3),(o6),,s0
()
10.2.2
1 M=(S,I,O,f,g,s0)SIOf,fg,gs0.
7 31,1,31
(),,,
10
:
s0(1)
s1(1,,1)
s2(1,,1)
,,11111
(,,),,(bnf,),,()CJAVAJAVAOOCJAVAJAVA()yacc.lex()
(,,
bnfnfa
()lex(token)(),(),,
(,,,,)
()
dfa,nfa,()dfa()
lexC
()
LR,LL,
,,(),,()
(for) ()
ID
()(),,
.C
CC++C
1,,,,,,
2,,,,,,,
3,,,,,,,,,
4,,,,,,,,duking type,,,,,(),...,,,,,duck
OSOSOSBIOSIOOSOS(OSOSOStiny)
OSOSsystem call IO(c stdiosystem call io)()OSOSOSOSmain()std lib dll,std lib dllcrt,
crtcC,run time,run timecrt
()OSc runtime,,crt
.netruntime,.
XMLXMLXML
CPU-(,CPUCPU,OS,)OSCPU
CPU+OS,,,=web 2.0,web x.x + nc,nc,CPUOS,,WEB,OSCPU,,NC,,CPUOS,,,OSCPU PCNTbroswer,NCweb2.0
CPU+OS"",WEB"",,,
CPU,IO,,OS,,API,,,
,
..Open office,,,
,
(OO,),..
,,,,,,,,
OOAOP
lamdaeavl()
,,,(,,),,,()(JVM),,,,, OOP
netCPU+OS(CPU),.native.,ruby,javaC,Cnative,,,,,bind..IT
,,,,()(Web Server)(AutoCAD, MS Office).,,..,(GUI),.,,,,,,.,,,.,,...
????(host environment).,,,(c,WebServercjava,C++/java/c#),---(Host Language).,GUI,API(),.,.,GUI,,,...,Linuxbash, WindowsWSH(windows script host),webperl, jsp, php, asp, VBscript, JavaScript. , AutoCADAutoLisp, MS OfficeVBA. 3ds MAxMAXScript.,.
????,,?.java,java,.,,,.,,.
????,,,()(stand-alone),(embedded)().,,,(),,.,,,(PythonC++,).,.Python,Ruby,perl.()(C/C++/C#/Java)(),,,,(),,,,,,,.,.Pythonlua.
,,,
C++,,,,,,
dukingtypeRUBY,LUAC++duking type,
,,"ADT",,,,,"",OO..
YYYOO,classADTclassification
,,Y,,,,,,,...
,,,C++,RUBY?C++!!
"C++",,RUBY(,),,,,,,
,
,C++(C++,C++,OOOO,,,C++OO,C++),,..
,C++,OO,,,,,LUA(LUA)
,,,,(),,,,,
,,,,(,,,,,,,),,,,..
C,,,,,,,..
CRUBYOO,C,,C(C,RUBYCOMRUBY)
Javajvm
(pehex,,hexpe)idadumpbinPEhexpe(PEmap)
()()PE
(progo)
Cpascal(C)
()if else()
ifelseifififif,ifelse if
intelelse
,,,??
,,,
C,,OO,,,OO
,,,,,,,,,,,,,
,,,,,,,,?
Java
()()()
()False,!!
GameObject& rgo = *pa; // rgo GameObject
// Asteroid
=
dymic cast
rgogameobjectasteroid
rgoGameObject()______rgoGameObjrgogameobj
point to someobjref to someobj
refcount
(3)
,
,,,,,=+OS
OS,,,,,,
C,,,VMOO,.,,,
C(),CPU,,=+(,,).C,CLASS,.
,C,OO,C()sockettransport(int),transport(float)(transport())C++
,,,,.,,,,(p178)
C++,,,1,,OO,,2 ,OO,3,COSNT,STATIC
C++,,C++,JAVA
,,
OO
JAVAWEBLUA()XML()WINDOWSCCWINDOWS
WEB()
OOLUA(LUASQLDSL)
OOOOLUAOO
Cruby
,1,,2,,3,
OO,?OOOOP,,,,(OO,OO"",,),,OO,OO,,,OO,,,,OS,,,PE,,,,,,OO,(),OO,,,C,,RUBY,JAVAOO,,
cRUBY,CRUBYRUBYBindC,RUBYWINDOWS(C),CRUBY,
,,C(),OOC(,,OO)
1,OSLINUX+ruby shell,ruby,C,,,RUBYC,,embed c,C
,RUBY BIND C,C?,CBIND,RUBY(RUBY),()C,native code.
2,RUBYC,,SHELL..RUBY
,CRUBY(,,C++OO),,C,C,,IO,,,,RUBY
RUBY
C,OOCC++,C++C,CC++,OS,C++,()JAVA,JVMJAVA(OS).JAVAJVM,SOCKETOO.,,WEB
C,C++,CC++,C,,C++.(RUBY)JAVA,(JAVA,,JVM,JAVA)
?
RUBYrubyCoroutine
lizaard
+
C++ruby
,ubuntu,windowsubuntuwinubuntu
,,,,,,,(C++,,)C++,,C++,,,,,,,C++,OO,C++OO..
rubyC++,
RUBY,
C++JAVA
,C++JAVA,,,JAVAWEB,C++,,JAVA,,JVM,(C++,,,C++OS,C++OS),JAVAWEB,JAVAWEBJAVA,,,,RORRUBY,J2EEWEBJAVAWEB,
WSDLW3C,JAX,AJAX,WEB
XML+()RUBY,HTMLJSPTAG,PHP
.netJVM
.NETJVM,(,,.NET,JVMJAVA
,,JVMRuby,rubyjava,,windowsJava,,,.,WINTELJVM,Windows,.
OS,C(CMSVC,BC,GNUC)(OSCLS),,OS,C,,,,,,,,JAVAJVM
OS(),OS,,,,,(OS)"""JVMJAVA",JVMOSJAVA
?JVMJAVA?(first class),,OO,JVMJAVA,OS,,,"",
RUBY
C,OOCC++,C++C,CC++,OS,C++,()JAVA,JVMJAVA(OS).JAVAJVM,SOCKETOO.,,WEB
C,C++,CC++,C,,C++.(RUBY)JAVA,(JAVA,,JVM,JAVA)
?
RUBYrubyCoroutine
lizaard
+
,,,,,,,,,,ITITIT(,ITIT,IT,,JAVA,,,,,)
,,,,,,,,,?,,,,,
,,,,,??,,,,,,,
Delphi,eval(),WEBXML(,)
,,,STL,STL,JAVA,(JAVA),,,,,(:,),,,,,,,,,,.
CC++
C++1/3C++OO(OO)1/3C++
CC++C++OO
C++OOCC++OO,C++C
OOOORTTIC++CDSLRUBYOOOO
objective Cruby
Cc++
Cc++
Cc
Cjava
java
c
stladtCCadt(adt)Cadt.
=CCCCCC
c#,javac/c++.
c#,javac/c++. 64. byte code,Pcode. , ,, . ,A+B+C, Push A (A) Push B (B) Add (, RegA) push RegA (,) push C Add (C) stack computer c/C++ load reg1, A load reg2, B add regA, reg1, reg2 load reg3, c add regA, regA, reg3 cc++, register computer. , ADD(), c/c++ add rega, reg1, reg2. ,CPU, cache,cache . Intel64itaniumcpu, cpuc/c++,,. register computer? , (CPU)! , register computer(Intel, AMD, PowerPC), stack computer, cpu, stack computer CPU. ,() , . .(,).java c#. , javac/c++. (64), ().
VB,DELPHIRAD
vbwindows,,VB,OSDEVELOPER,
,OO,VB,VB,,,VB,,,.
VB,"""",,,,,,,C++,VB,,,,,,,(,),,.VB,.
,VB(),,,,,,,,,,(,,,(,)..,
VBC,C++,,,,12(),,,WINDOWS GUIUNIX CUI,WINDOWSGUI,,GUI IDEUNIXSHELL,VIIDE..,,,2"",
VB,,,,WEBDSL,,,RAD,,,
VB,,E,DELPHI,,RAD
,,,
PC,,,,,,,,,,,
VBOS...
,,,RADVB
,VB,VB..,VB.NETWEB,
(4)C
CC++
CB,,&R,,,C89OO,Template,C++(C++C89),,,C99...CC99,..
99template99
C89()Ctemplate
,,,,1,2,,,,,link,"",,"",,,,,key:value,2,,
Vector,List
C,,
(C)
C,,,INT,FLOAT,CHAR,VOID,(,,,,first class),,,,,,,,,..(Cstring,char,,,Cstring)
C99_image,_complex,_string()
(:()char[]+/,strcatcstring.hstring.h)
union,struct
C
iostream(Cin Cout),,Cstdio.h(inpurcharprinf()),i/o
i/o,(,),,,input steam,file steam,
i/owindowsunsigh,sign,,int3216
,,,,,(,,,)(i/o),,,OSfilesteam.
C
C++first classlisp()Cprimitive typeschar,int,float,void
C++ templatetypeclass
,,,,(),,,,,
,,,,(,,,,,,,),,,,..
C,,,,,,,..
:
,,,,,
,advanced pointer c lanuage(CCC#)
C"","",,,,C++"OO",""(C++,C++,OO,C)
C
mov eax dowrd ptr []mov edx dowrd ptr []
C
CC++,,Cc99,C++C89,,
C,,,,,,C
,,,C1) ,C.C.C++Iostream.h,,,,,,C,,C++,,..C, C++C,,,2),bitwise
C,,,,,,,,,,,,,,,,,,
C,,,,C,,(),,,,,..,,,,,,C,,C++OO,
,,C,,,C
VBRAD,,,,,...,,,..
OSOS(),
VB,,VB..,,,.
,(,)
,,""""(, ,,,,
1.,,,,,,,,32 int
2,,,,,
3,,
,,"",
int* pointoaint;????? //pointoaintint,,,
,(,,=,,,,)
(first class OOTobject,OO)
C(JAVAC)
C,,()
C,,,,
WEB,,,,,,,,(),,,,,,,,:GUICUI,,CUI
,,,,,
JAVAWEB,,,,,,,JAVA,WEB,,JAVA,WEB
C,,.,,,CJAVA,,JAVA...,WEB..,,,JAVAC..!!!!!
C,,C,,C,,,,C,,,,,
CC,,C
CC
,JAVAC,,JAVAC ,(JAVAC),,(WEB,)JAVAC,,..
,=+(C,,,,,,C,,.out,,,=..)JAVA,,,,,,,OO,,,,,OO,,,,,,..
C
C,OOCC(CCOOOO)COOCOOOOCOO(OO)C(OOCC++templateC,OO)
CCOOCOOCC1.C,CC 2CC(C)C 3 C,COOtemplate,Cdsl4,OOtemplateCCOOtemplate,COO.
1),,,struct,typedef,,structtypedeftype redefine
2)
3)voidvoid.
4)C.
5)
6)Cvoid (foo *)(int)void,intfoo..
7)C""stack->next=stack->next->nextC++
8)typedefdefine
9)constconst
10)
COOP
CcCOOCCCOOC++
COOclass,class=type,templatetype,templateCCCclasstypetypetemplate
class(),subclass,class,,object,classinstance.classobject model
class(C++interface),,
()OO
RTTI
C
COOP1keyword,2,rtti.C,,oo,,C3adtinterfaceCCtemplasteOOP
class
C:
,==
C++,,BOOST,,OO,,OO,,,C++(,,,C,),,,C++,C++C++,(,,,,),,,,C++C(OO),,,,,,C++","(C).,,.,C,,,,C++,OO,TEMPLATE(),STL,BOOST()
,C++,C++,(C++),,,,(,)
OO,C,,,.C,OO,C(),,,,windowsC,,jxtac,,,,
,,,CC++,WEB,JAVA,COO,,,,struct student,,,(,C++,,C,,,)
JAVA,,,,,JAVAWEB,C+LINUX,LINUX.C,C.
,CC++,,,,C,C++
type*
,,,,typetypetype(),,dephiptype
type* someobj;
(*typesomeobjCsomeobjC++type,type *someobj*someobjtype,type* someobjsomeobjtype)
someobjtype,,type*()someobj
()
32long int(Generic progamming),void*(,)0,(),,,(,adressvalue)
,const(const)
type*
,,,,typetypetype(),,dephiptype
type* someobj;
(*typesomeobjCsomeobjC++type,type *someobj*someobjtype,type* someobjsomeobjtype)
someobjtype,,type*()someobj
()
32long int,void*(,)0,(),,,(,adressvalue)
,const(const)
TypeDef
typedef(typedef=type dfine)
1.typedeftypedef int INT;(INTint)
2.extern()extern int myint;(myintint,,,)
externtypedef(myint)
myint
typedef int (*myint)(),,,extern int (*myint)(),,myintint
type*
,,,,typetypetype(),,dephiptype
type* someobj;
(*typesomeobjCsomeobjC++type,type *someobj*someobjtype,type* someobjsomeobjtype)
someobjtype,,type*()someobj
()
32long int(Generic progamming),void*(,)0,(),,,(,adressvalue)
,const(const)
type*
,,,,typetypetype(),,dephiptype
type* someobj;
(*typesomeobjCsomeobjC++type,type *someobj*someobjtype,type* someobjsomeobjtype)
someobjtype,,type*()someobj
()
32long int,void*(,)0,(),,,(,adressvalue)
,const(const)
CC++
int *(*(*foo)(int))[5];
foo(-*foo)(foo)int(fooint)
1,Window
()windowswindowsC++CUI**
data flow,,file map(),,,,
2,
3,type**
4,Handle
5,
BA
(A)new B
BA
a handle of A pointing
to a B,
forupdateupdata
case
(C++)
(0)
continebreakcontiune()break(break),,()
C++ C++ CC++static_cast, dynamic_castC++static_castdynamic_castreinterpret_castconst_cast
static_cast
static_cast < type-id > ( expression )
expressiontype-id
intcharintenum
void
static_castexpressionconstvolitale__unaligned
dynamic_cast
dynamic_cast < type-id > ( expression )
expressiontype-idType-idvoid *type-idexpressiontype-idexpression
dynamic_cast
dynamic_caststatic_castdynamic_caststatic_cast
class B{
public:
int m_iNum;
virtual void foo();
};
class D:public B{
public:
char *m_szName[100];
};
void func(B *pb){
D *pd1 = static_cast(pb);
D *pd2 = dynamic_cast(pb);
}
pbDpd1pd2DpbBpd1Dm_szNamepd2Bstatic_cast
dynamic_castcross cast
class A{
public:
int m_iNum;
virtual void f(){}
};
class B:public A{
};
class D:public A{
};
void foo(){
B *pb = new B;
pb->m_iNum = 100;
D *pd1 = static_cast(pb); //copile error
D *pd2 = dynamic_cast(pb); //pd2 is NULL
delete pb;
}
foostatic_cast dynamic_cast
reinpreter_cast
reinpreter_cast (expression)
type-id
const_cast
const_cast (expression)
constvolatileconst volatile type_idexpression
Voiatileconst
class B{
public:
int m_iNum;
}
void foo(){
const B b1;
b1.m_iNum = 100; //comile error
B b2 = const_cast(b1);b2. m_iNum = 200; //fine}
b1const_castb1b2
Static
C++staticstatic
static
static
static()
static
static()static()JavasystmeAPIAPI
staticconst
static
overroad()private
CC++int i=9;extern int i;Java
(/0)char*
new type[num]
==1=
char* myvar = iloveuchar[] myvar2=iloveu2()
11sizeof(type)
,alloca
mfc
bcplC(32,)C(,)structadt()lisp
C
void (int *p1,int *p2)
#define mysub(x) x^3/x
p1,int*p1,p1,p2
definemysub(x)x,mysub(x)define
:
(,,gui,)GUI
CPU
CCPUCCCPUOFCF
()intelcpu()(),2C()0,220,0,01,10..
()
()()0,,,,1s
()
"&[]""+"CC&[]""+"C
"&[]"(...)
void
Cvoid12332
void
voidint *,float *,voidvoid(castint*float*)
castC()C++
(5)
,web2.0,3.0,,,,,,,,,,OO,,"",,
,,xml,,,,,,,,delopy,
,web,,(,),,.net,,flex,silverlight,.
,.,,,xml,oo,
,..,PC....
,,
,OS(OS).
google,,,,,OS
,,,,OS.WINDOWSGUIcore,...,.
,,...C,CC
....,,,,,,,(Lua,,)
,""DSL(SQL,),,,,,(,)
,,
,(DSL)
,C++,
,OO=+,,??,OO..=,,,....OO,,()..
,..,..
,,,,,.,,.,,,....,,,...,,,(,,,)
deepest concept,lowest interface = min learning
OO,,,OO,,OO,..
CC++()linux,,windowsGDI,C,C,,,,C++OO,
(),JAVA,,,,JDK,SUNJ2EE,,,
(6)
(regstack)
,(JVM,jvmjavaruntime)
C++OOrtti,,stackreg,()
Cthiscdel,fast,pascal
runtimestack runtimestack frame()stack runtimestack
()()((
()()
()
()
+
,,OO.....
(),,,,
OO,,,,,OO....()
,
+CCCCC++,C
,
,
,,
,
,
,
()
()
,,,,,2.2
()
,,,
()
Cstruct,typedef,cC(bit maskbit mask10).lispadt
adt..
adtadt,adtadtadt,,,2adt,2adt,adtadtadt.
list,sequences,listlinked list,sequences(1)sequenceslistordered list,listsorted list()ordered list,(2)sequenceslinked list,linked listadtlist.
key valuekeyinterger,,,smalltalk,objectivec,.net,python,realbasicdictionariesperlrubyhashesC++javamaps,common lispwindows powershellhashetables,phpluatable,
key valuevaluekeyvalue,keyvalue1nbit vecotr.
vectordymic arraymalloclinked listlinked list
vectorindex list,linked list,,(Cfoo[m][n]foo[m*n])(1vectormatrix)(vectorindex listindex list,bst)C()
vector
vectorCCadtCC
C,vector,vector1rowCfoo[3][4],4row,34,,2,pascalvector
3,,vectorCvector,c++stlvector,vector323232,3,,1vector()(1foo[3][4][5],:
(1)3[4][5]
(2)..
(3)..
(primtive types)(idioms),
ADT
javaC++newCC++C++ADTC(C),STL.
,STLarraryvectorvector,(wrapperfirst class)Vector(Vector)
()CC++
JAVAC++INT MyVar[10];MyVarJAVAINT[] MyVar;type *typetype[]
(orderd list)hasp map,
(123)
B=(K,R),
(Hash)(set),,(hash mapmap),,(table),(array),,(vector),,,,map,linked list,(matrix)vectortable
mapset,,
(),
,(list),,dequece(double end quece),
table,,
(map),()
keyvalue,,(hash)keyvalue
MFC()
()()(++p,p--)()()forward
listorderdlist(linked listorderd list)orderd list
( )
,
1()()
ADT
C
:2005.7 - 2005.9C - ,,,,,.
(,),"",,"","",(4.bmp,"")
"",,,,,,"",0~MS-1(int queue[ms]int stack[ms]),,,,int,msint,,(int,,,,,,,msms+1,,,,msms-1,0,0,,,),,0~MS-1,1~MS,,,2~ms+1(3ms),,,,,,(0~ms-1,1~ms,2~ms+1),"",(,,"","",""),,:(5.bmp)??,"""","",(),"",top,"()",top,,32,top,,"","","""",""top,""top,,""top,,,(,,,,1,,0~ms-11~ms,),,,,,,,,"",,,(),,,,(),,.
,,,,4.bmp"""",,,,?0~ms-1top,0top,top,top-1,,0,(,),,top"",,,,top?,(push),2,,,,(2,front,endhead,rear),rear,f,fr,f,r,,f,r(f,r),,,,(fr),,,fr,fr,,"",,,value,,,,,(),,,,,0,,.
Q.
(0)200662 053
void creat_btree()
(0)200662 053
[%repeat_0 match="/data/option"%] [%=@title%] [%=@count%] [[%=@percent%]]
[%_repeat_0%]
void create_btree(int *b_tree,int *nodelist,int len)
{
int i;
int level; /**/
b_tree[1] = nodelist[1];
for (i=2; i>> fib>>> f = fib>>> f(100)1 1 2 3 5 8 13 21 34 55 89 Lambda "" C Pascal """"^_^"""" Python """"""""
SOA,COM,,,OO(,)
CJAVA,,,OS,JAVAJVM,,JAVA,OS,C,JAVAJVM.VB5,.
CJAVA,,,JVM,OS(,JVMJAVA,,,JVM,JVMJAVA,,,,,,JAVA,JVM,,JVM,,JVM,,SOCKET,,,,JVM,JAVA,,,,C,C++).JAVA,JVM,,,OS,
Design PatternsIteratorJava 1.01.1EnumerationJava1.2
,?,,,,,,,,,,,,"...",,,,..,
,,,,,(),,,.
,,,,,,,,,,,
,GUI(WINDOWSGUI,GUI,),,,GNOMEGDI,GTK,,,,RIA,,HTML,AJAX,FLEX
,INTERNET,BBS TENLENT,BBSHTML,TCP/IP,OS(OS,TCP/IP,,,GNOMEAPP,WINDOWSGDI),,HTML
,XHTML,,WEBGUI,AJAX,FLEX,
AJAX,,javascript,WEB serverbroswerpages pulling,pull,(,),
FLEXADOBEFLASH,MXMLDSL..
(,,,,,,,,,,,,,,,,,),,,,,OO,OO,lua meta tableOO,,JVMwindows,
,?,?,,,(,,),,,,,,,
?,,,,,!,
,,,,.
Spring,strcuts.MVC,,rails,springweb,"",,,.
,,(),
,,,,.,,,,
,,,,,(API),
open jdk(),,,,,,"""",,
core learning and min learing
,,,,
1,x86,,,,CPU,OS,,OS,,,,WINDOWS,
cpu,,
2,,,
3,,,,
4,,,
,,
COS,,OO,,.OO
6,,,,,,,
7,
,,,,,,
,,(,,,,,,,,,),,,,,,,,(XML,node,root,),(,),,
,UML,
,(),,,,,,,,
,,,
,,"",,
?:,,,,,.,,..
.
,,,,""(),(,),
,,?("",)
,"","",OOO,,,,.(,,)
,"",,,,,,,,,,
,,,.,,,,,,,,,,,(","),,
?
=+=++,,
,,,OOC(OOOO,OO,OO,OO,OO,C,,,I/O,)
,,,,,,,LINUX,,(,,,),"(,)",COO
OO,,,,,,,,,,,
,,,,,,,,,,.
,,.,,,,,,,,,.
,,,,,,(,,),,,,.,,.
,,,.
,,,,,,,,,,,,,,,,,,.CSDN,,,.
,,,(),,,,.,,.
.
you made me sick
(),
26(),,,,,0,,
?
IT
(tomato)
OO
1,OO,OO,OO,,,,COM(OO)
2,,OO,,,,(C++),OOOO,OO,,C++,,OO,,OO.
3,C,OO,OO,OO,RUBY(-C,OO)
4,C,OO",,",,
,,
,(WEB),.,,
,,,SOA,JAVAEE.
,,,,,,,,,,,(),,,,,,,,,,,,,,
,,,,,,,"",,,"",,,,
,,,.,,,,,"",,,
,,,""(),,,,,,,,,,,,,(IT,,,),,,,,,,
,,,,,,,
OOADT
,,
?
(),
,(1)NFnN(), V(F)Fn,
n
(2)()
.
,
(),3.4()
,,()
()
,,
4 ,()n
1
1
0
1
2
1
0
1
3
1
1
2
4
2
1
3
5
3
2
5
6
5
3
8
?64,4231
(:),(,,3-1,4-2,5-3,6-46-2,22),A+A-B+B-(),B+B-B+B-A+A-C+C-,B+B-A+A-B+B-D+D-,,
,ab,b-a=2,3-1,5-3.
(3-1,5-3,,,nn-1n-2,,,an,an,,)
,53,()
3-1,5-3,
1
2 1 n-13
(23,)n,,,,()?
:,1n-13,(2),21n-112,(:1,:)
,Snn,(,,,,,Sn,Snn13Step,S22,S1010Step,Snn),1Sn-1,213Sn-1,
Sn=2Sn-1+1 (Snn13)
SnSnn12,(13,2,3Sn=2Sn-1+1,,,)
5.2
,,
,
,an= an-1,,,,2,,
()
,,
,,,,,=,=+
,,,,,
X:,()
(,)ian,ink(k1,),,,()x,,
AI,,,,,
(primate typeoo wrapper datatype---ADT)CPU
()ooclass,,,()()()(OOCLASSOO)
()pagefile()PE
GUIGUIWINDOWSOSGUIUNIXGTK()WINDOWSWINDOWSWINDOWS(Windows)()WindowsCAPI(API)MFCAPIWindows
OORPC,RMI---OOXMLJAXOO WEBSOAP,,()assemble()(IDL),XMLEJBS
CLASSCLASS()
(SOA)SOA
JAVAJVMWIN32
JAVAJAVA(CPUOS)
ASCII(ASCII)WEBXMLXMLxmlxmlASCII,ASCIIUnicodePEbase64base64nodeXMLXMLXML,,metaData XML
(,,1)
(),,0cfofCF,OF(),,
0xABCDEF12 16AB(,intel)(12 EF CD AB)
,,,"bigdianbig""little dian()"CPUOS(intelbig,)small,big
()(-ASCII)(map),,()
JavaHash
,,(,,)"",,,,ASCII,01ASCII,,(),,,"",(""):(2.bmp)
,,,,,,,,,,,,,(CPU,),,.
256CPUCPU
Unicode
ASCIIISO,GBBIG5
unicodeisoucs(uni character set)
unicode265535(21665535,65535)
()65535,
ucs
CJK(chinese,janpanese,krean)unihan(han,uni)65536,U+0000U+FFFF
65535utf16(code plane,VSC4819code page),(U+10000)UTF161-1716
655352048(D800-DBFF1024DC00-DFFF1024)U+10000code point
\uJava(char)(string)()
()unicode---UNICODE---,JAVAunicode
utf8,utf16,8,16,,ucs2,ucs4(24)
utf(),(),utf8,utf16,8,16bit,,,bitbit,utf88utf88,,utf8(2-4ucs2,ucs4)
U+0x0000U+0xFFFF(U+unicode)
0x00000xFFFF(unicode265535code point)Uutf8,,
Windows
WindowsWin OSWindowsWindows(Win32)WindowsWindowsWindows IDE VB ,Win32WindowsWin,,Win32
(),Windows(,),WindowsOSWinOS..
OS (("")Windows),OS - MFC,,,,(:,)OS,("..")()Win32
MFC123,OnCmdMsg(),4,SetCapture5,6SetWindowsHookEx(),,.
,,
,,,(),(),
CWinApp Run()..........,,,.
UML
Windows
XML
xmldom,,(dom,xmlsun)
,dom,xmlxmlnode,root,,domschma
,,nestape
webxml
GUI
GUI
WindowGUIconsole,(UNIXGTKGUI)GUIDX,DXGUI
CONSOLEGUI
DXGUIGDIDXGUIGDIDXDXGUIGDI
JAVASWING,MVC(--)
GUI()
window frame
window baseeditbutton
DX(utilityAPP)(GameAPPAPPutility)GUI,assert,UtilityDX APP
guistatic mesh(ogremoveable)terrain mesh ,top viewmesh(Render to texuretexturetextureassertsurface)
,WindowsC++(C++ANSIOO,CC++OO),C++,,Windows("Windows")C++,WindowsWindowsOS,C++,C++(),,MFCObjectsC++Objects,(,Windows,MFCCDC,);
GDI
:,MFCMFC,,:(x,y,x,y,,),:DrawLine(x1,y1,x2,y2,color,width),,,,,,,:DrawLine(x1,y1,x2,y2,color,width,device,limits,units),,(,CPU,,,Linux),,,,,,,CPU,,,,DrawLine(),,DrawLine(),,,,,??
,C++,(,,,,,,,,,,,MFC),C++,WindowsDrawLine(),DrawLine(),,,DrawLine(),(,),:DrawLine2(,x1,y1,x2,y2), ,DrawLine2(),DrawLine()x1,y1,x2,y2,;
("..")MFC,C++MFCCDC,,""Windows,..
API
MFC
32Windows,Dos16,WindowsWindows,(,),DosWindows,,,C++API,,,Windows,Windows,Windows,,(VC++).
VC++,Windows,VC++MFCWindows,Windows,,VC++WindowsSDK,,VC++C++,,,MFCC++,Windows2,MFC,API,MFCWindows,,BCBIDE(VC++,BCB),,,Win32,Windows,MFC.
MFCAPI,,MFC,API,,,:,Windows(:"Windows",C++),,"On_"+(WM_Paint),C++.
MFC,(,,,),MFC,VB,Dephi,32,Win OS,,,()MFCAPI,MFC,,,,C++,,MFC"","",,,MFCfor C++,""MFCC++().
MFC,(Microsoft Foundation Classes),,C++,VC++WinOSC++ SDK(SDK,Standard SoftWare Develop Kit,),MFC,MFCVC++(C++VC++:C++,,VC++,+IDE,WS,PlatForm,PascalDephi,PascalDephi,DephiPascalWin,BasicVB,BasicVBBasic,VBBasic,,,VBIDE,),MFCBC++VCL,,MFCVC++..
MFCWin APIC++,MFCC++Objects,API,WinOS,,,(,,Borland)Win OS,WinOS,VB,VC++,Java,DehpiAPI,WinOS,WinOS,,API,Win,,MFCAPIC++,C++ SDKWin,MFCAPI,,WinC++ & MFC,,,,(),MFC,..
MFC,,,,,(,),WinOS(MFCWinOS),,,C++MFC,C++,,,C++..
(2)
,:,,(,, MDI ,CWnd )WM-PAINT:,:Windows OS SDI MDI.,:()
..
(),(CWnd,,CWnd,MFC)MFC,Win32,:,(,), .(.)
Javajavajava,win32Javajavajavajavajni(java native interface)java
JAVANET,,sunmicrosoft()()(IOWEBDB)OO(VC6MFCC#).NETJFC
, (JAVAEE,-Middle ware)
()
APIAPI(APIAPI)APIAPIAPI(,)
APIAPIAPIAPI
OO(),JAVANET,MeteData
SunMicrosoft(+able,IConvertiblecast,IConvertible )(,,) ,JavaWEB,WEBWEBDCOMXML,RMI
.NET
winword IDEvs9vs9win(,,.net)VS9.netwin32nativeweb,xml,web,,device sdk,tablepc sdk,embeded(vs9,vc ,vcse).
sdk()
1.platform sdk,,windows OS,,win32apimsdnProgram Files\Microsoft SDKs\Windows\v6.0A
2..net sdk sdk,.net frameworksdk(.net frameworksdk,.net java,nativehigh language),.net frameworkwin32.net framwork(,)OS(crt),,
win32.net.net
3.device sdk,,,
.netjava.net framework()win32windows.netwindows.netwindows
VS7SDKWindows SDK(WindowsWindows.h),PlatFormSDK(),DOTNETSDK(),VC SDK(VC),SQL()
ogre
?plugable(WINHAL.DLL)
,,,
()OGRErendersysrender()callback,,,rendersys(ogre)
()Dependencies,portable,plugable
wrapperC++
JAVA(JITScript,)JAVA(JVM)JAVAJVM
(War3)
,unix shellscripts(CS)(,Ogre)
Microsoft Word OLE automation objects.,,vbscript(VB),windows.
txttxt.
action-schedule-motion
OSOS,
CC++(OS)(Java)posix api,
,Db4o,,(EJB),
Java
VolatileAGPshadow memeryvolatile(CPUCPUGPU,,)
EJB()
()
(OO)(),
UML,booch,
()
()
EXEDLL(win32 sdk,mfc)
C++.hpublic.h__sth_h__sth_interface
createprotected,,,,,,,,
SDKSDK(override,)
overroad,override
sdkWin32SDKVC++SDKDX SDKMAX SDKSDK
HEX
MFC,SDKOOMFC,,CPUWIN32WIN32CPU
,RTTIpredefined behaviors
pythonC++swig(luaC++C++Lua-calllua)stdcall,fastcall,pascal,
stdcallapi,,fastcallecx,edx,,,,api,callecx,ecxthisthisrose
()this()(thisecx).rdata
1,
2FIFOFIRSTLASTIO
3,,,,EXE
()XPUPS()
()Solution(VC7Solutiom).
(^^)
()
1. ,
2.
2.
3.
()
1.
1COSAPI
2C++C++OO
3COMDCOM
4ActiveX()
5 JavaBean
DLLDLL()
ABC,()BC(BCA)
,AGameGeneric,BShowGeneric,CLogicGeneric,
BCA
(,),
()(GameGeneric)
Yake
GameGeneric(BCABCA),GameGenericBCA(A)BCBC()
^^
DSL
DSL
IDL,WDSLSQLIDL,,C++,JAVA
(vc*.obj)
C++ALGOPROLGYACC
SQLUMLIDLXMLYACC()
(Actor,,,,MissionDP,),,,..()XXXCC++OO
VC++.hC++
override
(static )
()
()
()()()
(,-,)
C++(schma)(IDL)
()()
(,)()()(),==+
,
,
C++OO,GP
()(metadesign,,metaprogram
,,()
Assert,Log,(,-)
1.stlportincludeVC6SDK
2.dx8dx9dxinput8.h
3.cppinc?hcpphinline,define
4.
5.
6.inc./,,\
7.link
8.disable warning stl
9..lib
10.macro redine_
11.#include
12.VS9VS8
,,Yake
Dll,exeimport lib,,,,,,libstatic lib
JAVA,C++,Java
C++
(),()
1(123.)212.3E1
E(1212),,,,,,,
,()
248(8)6-7
ADTprimate type,, BigDecimal
CPUFPU,
64single ,,,double,,,long int 32
23.45234523450.2345,,2345,23.452345*1/100,,23452345*1/1,0.2345,23.45....
2,
,,6-715,
0000NaN
C++,0false,0true,JAVAtruefalse
C++(00)if
booleaninttypedef 01
,,01
(if)
0011, 11,00, XOR1,0
,
101,001
,,
CPUOSJVM32,,,OPENGL(TYPEDEF)
CPUtype,
BYTESHORTINTLONG81632
CHARWORDDWORD
C++int2,"",6,[signed] int(:[],,,[signed] int=int,"int""",),6(1)[],[signed] int ,int,,6(2)[],unsigned int(unsigned[],),,,unsigned int,intunsigned------2:a.signed int(2)int,(modifier),[signed] int([signed] intint),[signed] intint,(3):[signed] short [int](4)unsigned short [int](5)[signed] long [int](6)unsigned long [int]
(,6),(C162"215"2"15,"",,(signedunsigned),,,2(,210,1620000000000001010,2,2),.
JavaunsighedsignedunsignedJVM
GameObject& rgo = *pa; // rgo GameObject
// Asteroid
=
dymic cast
rgogameobjectasteroid
rgoGameObject()______rgoGameObjrgogameobj
point to someobjref to someobj
refcount
RTTI
Cast,,cast voidfirst class
castRTTIrtti(JAVADB4ODB4O)
cast,
50(1,2Tobject,
.creat)
try
1 aObj := TObject(TBase.NewInstance);
2 aBObj := TBase(aObj.Creat);
1
Tbase.NewInstanceTObject.Newinstance,Tbase
NewInstance(initinstance
,VCL)
TObject,,
1aObj :=TObject,TBase
TObjectaObj
Tbase
(.creat),aObj,aBObj
Tobject,aobj...
TObject
tbase
tobject,tobject,tbase
tbase,
tbasetobject(tbasetobjecttobject
tbasetobject,tobjecttbase
,tbasetcommon)tobjecttbasetobjct,
tobjecttobject^^
tbasetobject,aobjtbase(tobject
tbase)tbasetobject(tobject)
,,
tbase.newinstance.newinstancetbasenewstance
aobj:=tobject() aobjaobjTbase(******)
tobjecttbase,,,aobj
tbasetobjecttbase
aobjtbase()
creataBobj()abobjtbase,,
aobjtbasetobject(aBObj := TBase(aObj);aboj
tbase,,aobjabobj)
abobj,abobjtbaseaobjabobj
53,
001,aobjtbuttontcompent
002.......
003,aobjabotton,,,tbotton,,,aobj001
virtual,,,()
(),
int var1;
int * var2 = new int;
var2=&var1;
var2,,var1(var1),var1(var1)
type*
int * var(var2)
var1int var1const int var1,var1(var1var1var1)
const
int var1;
const int * var2 = new int; (*var2const int,var2intvar2var1,,var1)
var2=&var1;
var2(var2)var2var2const int*,,,
const,,,var2const,,var2
1,2,
This(C++)
OverroadOverride,Virtual(Virtual)C++,
1virtual
2virtual
1,Window
()windowswindowsC++CUI**
data flow,,file map(),,,,
2,
3,type**
4,Handle
5,
BA
(A)new B
BA
a handle of A pointing
to a B,
forupdateupdata
case
(C++)
(0)
continebreakcontiune()break(break),,()
STL
,
C++
objects,,container,,
CC++class(),,funtion(),,int ,,double,
ID
C++,typenameclass
typenameclasstypename
typenameclass
()
()
STLSTLSTL
STLSTLSTL
STL
OOINT()
->
,,,value
RTTI
(/0)char*
new type[num]
==1=
char* myvar = iloveuchar[] myvar2=iloveu2()
11sizeof(type)
,alloca
mfc
SQLSQLServer.()()+(,SQLServer)
()()
()()()
,,
,,-E-R.
,,,()
,SQLtable,,,(varbinary,varchar,image)View(),()
WinFS
TB(T)
SQL(varbinary,varchar,image)
(),
, 123,().
,(SQL).
delphiOOOOOOODL!!
2002OQL,OO,
UDT,,class,typenameclassINT(INTADTADTINTbind)vectorclass(),,datatype
int a= int b,,, badatatypedatatypedatatypedatatype
OO
,RAMOO
Datatype
OO(),,OOOO,OO,,
(,javabeanbean),()(type safe)
OO,OO
ADT
,()
ADTADTADT
().()OO
,
()
(),
()()()()
()()(,)
OO
OO(jarclass)JAVAJAVA(--CC++C++first classjavasrc)
db4o,UMLDB4o
sqlembed
exe
OOOO()JAVADOTNETOOOOCCPUOSDOSWINDOWSOOOOOOOO1.JAVADOTNETOO - JAVADOTNETOOOO2.,,J2EE
,WEBWebWEBOS(NetWork OS,RMI,RPC,Corba,DCOM)
WEB().
DcomCorbaJava
Java.NETOOOSNative(JIT)JAVAC++(C++C#,JAVAJAVAJVM)
OO()FrontEndBackEndROSE,,YakeBaseGenericGeneric,nativeDLLLoggingYakeYAKEOGREODE(OO)YakeBaseGeneric,Yake,DLLYakeLogicGeneric(, ()()
(,)
)ROSEUML()()UML(,GameGeneric)
(,)
OOP
C++MFCVCLMFCC++STLC++STL
C++Vectorwrapper(OO)
OOPooidioms()()()OOPGeneric programe
Generic programe
STL-,
(stl)()
stl,stl,,container
(stlmfcOOPATL).net
Interface
(C++)(-),,
,(),,,,,
delphi,,,COMborlandIDE
()
()-
,()
,()
(),
,,
,
(),(compent view)(ROSElogic view)
,()
,()
(),
,,
develpoment view
()DLLLIB,DLL()
(Client),,(),,(Client)(JAVAActor)
()()
(),,,()
(),
()
,(Acotr)clientsclient(),
client
()()(),(),()()
()
Has-A()Is-A(~~)
Link-AIs-AB is a A,,BAAA.BA
()
client(,,)
Opencloseopencloseopencolseopen,close,,,
OO(,)
()(,)
()
()()(implentextend,,)
,
,fina,,C++CONST,
()
(hash)
(),(clientclient,)
(--),(New)(.
(-----)
client()()(),(client-)
(Client,ClientActor)
(),
Adapter
1,javainterface
2,
3,COM,
4,classprivate,API
5,
OO()
()(),
(--),(API,)(),,--(,,)
()
Demo(CONSOLE,),()
OO
()
OO
(UML)
()
(,)()..
(.Net,JAVAOO,,)
XPRUPROSE
OOOOObject(OO),OOClassObjects(CLASS--------)CLASSCLASS(,)
(MFC).
DOSrotuine(new,VOID**SOMEOBJ**,)
(,OO)
,(,case view,compent view,,logic view,lgoic view)
(),,deployment view
OOOOJAVA()
,,,,,MFCMFCMFCMFCstdafx.h(stdafx.hVCproject wizardwin32 app,win32 mfc app,win32 console..etc,project.settings,C++.precomplierheader)plugableDependencie,,includedxdx sdkinc
JAVAJAVAOO(JAVA,,.NET,JAVAOOOO)JFCJAVA Foundation ClassJAVAJFCSWTJDKJAVAJAVA
C++JAVAIO,stream flow,,,XML,,,,()
()
IOJAVAMVC()
JAVASDK,JAVA
Gang of Four
STLOOOO()
COM
DCOMRPC(,windowsservices.msc,)ole2(object link and embed),,,idl()(vcmidl)com,comTLSthread local storageCOMPEDLLswig(code generatecode complier)COM DLL,swig(,,wrapperswig)
COMPEDLLCC++CC++EXEDLLUSER32C++APICGDI32C++APIC++C++EXEDLLCOMC++API,COM,,PEDLLAPIWIN32APIEXEDLL.text,.data,.stack(OS)COM
VC SDKobjbase.hiUnknown,smart ptr,,,I#define ptr interface
DCOM
comole2,qureinterface()
cast,,,RTTI
RPC(marshalling)
DCOMOMGCORBASUNRMICORBAORB()
,,,void**,someobj**,com
CORBAorb,
COMDCOMC++(comidlC),,COMDCOM
DLLCOMDLL
COMDCOM
omgidl,java,c++
dcom,comwindowinprocdllCOMexe
COMCOM,
J2EE
,()
,Sun
()J2EE
Sun
XMLSunW3CXMLXMLWeb(XML)XML Native(XML-Enable DB)J2EEJMSJMX,XMLWrapper(WOWXML+Lua,XML) XML
J2EE,J2EEJ2EE
Sun,
SunMicrosoft
J2EE
SOA
SOA:(EJBMOM)wrapperEJBSOAEJBEJB
EJBJSPSERLET(Letapplet)
SOAWEBSOA
J2EE,J2SE(SOA)J2SEJ2EEEJBJ2EESUNSUNJ2EE
J2EEEJBJAXRPCRMI-IIOPJNDIJDBCJTAJTSJMSMOMSERLETJSPJAVA IDLJAVAMAILJCAJAXPJAAS
SUNAPI
1.df
2.
EJB
java beanejb
java beanejbbeanejbtraitsbean(),,APIbeanvb(interceptingget,set)
j2ee,,
message driver-bean(jms)bean,,Callback,,
jmsjxta(Jxta,jms)jmscharacters
j2eeBMP(Bean)Bean manager peresit,,,CMP,,container manager peresit,POJO(plain old java objects),XML jax-rmi
B2BB2CJMSJDBC
EJBbeanbean
1.
2.
3.Reserve C++
4.C
5.
6.C++
7.Head first
8.J2EE
1.()
2.
3.,
W
XP,RUP,,,
Gang Of Four
J2EE Core DPs
CPU
()
(SQL,XML,OODBMS)
(DirectX,OpenGL)
()
OS(,GUI,)
(Sock,P2P,Web)
(,,STL,GP)
(DotNet,Java)
:()
VRGeneric
InnerWorldLogicGeneric(Logic)
Outter,InnerWorldWorld
OutterWorldShowGeneric(Yake)
WorldLogicGeneric
1,
Envirment
1,
2,
3,
Society
1,
2,NPC
3,
GameSystem
1,:PK,
2,NPC:
3,
4,NPC
Playable(Actor,Stage)
App,Client,Server
GameGeneric
VRGeneric
GameGeneric(FaceUserDevelopeGeneric,AboveGameExtendGeneric)
GameGeneric(LuaBind),1,2
NotWar3.lua
1,ServerSideGeneric(Lua)
2,ClientSideGeneric(Lua)
3,AsPeerSideGeneric(Lua)
Yake
ScriptLvlExtendGeneric
GameGeneric(LuaBindFaceUserDevelopeGenericAboveGameExtendGeneric),1,2
GameGeneric
NotWar3.lua
1,ServerSideGeneric(Lua)
2,ClientSideGeneric(Lua)
3,AsPeerSideGeneric(Lua)
Yake
NotWar3.Lua
PeerSideGeneric
ServerSideGeneric
ClientSideGeneric
ScriptLvlExtendGenericLuaBindGameGeneric
Show
Show
Logic()
Logic()
Show
Logic()
Generic
Generic
Generic()
Genric=Show+Logic,Genric
NotWar3
Empty Logic
Extend(Yake:LuaBind,Script)
GameShow(Yake:InputOis,Net,)
Empty Logic
VR Logic(Gvwl)
VR Show(Yake:
:AudioWorld,Pysical,Graphi)
(Yake Base or its Better Edtion)
1,2,3, 4,
ADT
,
()
()
1,,
2,,OO
()
1,()
2,()
3,(,)
4,
B
A
C
GP
OO
MetaData(STL,XML)
ADT
REG,
MetaDesign(,,UML)
ClASS
()
()()
OO(,,)
Etc
()
()
()
Rose
1.A
2.B
3.
PAGE
17