Professional Documents
Culture Documents
Print Introduction
Print Introduction
ﻤﻘﺩﻤﺔ
ﺘﻨﻔﻴﺫﻩ ﻟﻠﻘﻴﺎﻡ ﺒﻌﻤل ﻤﻌﻴﻥ، Computer ﻴﻤﻜﻥ ﻟﻠﺤﺎﺴﻭﺏ Program ﺍﻟﺒﺭﻤﺠﺔ ﻫﻲ ﻜﺘﺎﺒﺔ ﺒﺭﻨﺎﻤﺞ
ﻟﺤل ﻤﺴﺄﻟﺔ ﻤﺎ.
ﻻ ﻤﻥ ﻓﻬﻡ ﺁﻟﻴﺔ ﻋﻤل ﺍﻟﺤﺎﺴﻭﺏ ﺒﺎﻟﺘﻌﺭﻑ ﻋﻠﻰ ﻤﺎﻫ ﻴﺔ ﺍﻷﻋﻤﺎل ﺍﻷﺴﺎﺴﻴﺔ ﺍﻟﺘﻲ ﻴﻘﻭﻡ
ﺇﺫﻥ ،ﻻ ﺒﺩ ﻟﻨﺎ ﺃﻭ ﹰ
ﺒﻬﺎ ﻜﻲ ﻨﺘﻤﻜﻥ ﻤﻥ ﺃﻥ ﹸﻨﻌﺭﻑ ﻟﻪ ﺍﻷﻋﻤﺎل ﻭﺍﻟﻤﺴﺎﺌل ﺍﻟﺘﻲ ﻨﺭﻴﺩ ﻤﻨﻪ ﺃﻥ ﻴﺴﺎﻋﺩﻨﺎ ﻓﻲ ﺤﻠﻬﺎ ،ﻭﻻﺒﺩ
ﺃﻴﻀﹰﺎ ﻤﻥ ﻤﻌﺭﻓﺔ ﺩﻭﺭ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻓﻲ ﻫﺫﺍ ﻜﻠﻪ.
ﺭﺒﻤﺎ ﺘﻜﻭﻨﺕ ﻟﺩﻴﻙ ﻓﻜﺭﺓ ﻤﺴﺒﻘﺔ ﻋﻥ ﺍﻟﺤﺎﺴﻭﺏ ،ﻋﺒﺭ ﺩﺭﺍﺴﺔ ﺴﺎﺒﻘﺔ ﻟﺒﻨﻴﺘﻪ ﺍﻟﻤﺎﺩﻴﺔ ﺃﻭ ﻋﺒﺭ ﺘﻌﺎﻤﻠﻙ
ﻤﻌﻪ ﻜﻤﺴﺘﺨﺩﻡ .ﻭﺭﺒﻤﺎ ﺍﺴﺘﺨﺩﻤﺕ ﻤﺼﻁﻠﺤﺎﺕ ﻤﺜل :ﻤﻌﺎﻟﺞ ﺃﻭ ،Processorﺫﺍﻜﺭﺓ ﺃﻭ ،RAM
،ﻁﺎﺒﻌﺔ ﺃﻭ ،Printerﻟﻭﺤﺔ ﻤﻔﺎﺘﻴﺢ ﺃﻭ ،Keyboard Screen ﻗﺭﺹ ﺼﻠﺏ ﺃﻭ ،Hard Diskﺸﺎﺸﺔ ﺃﻭ
...ﺍﻟﺦ. Scanner ﻓﺄﺭﺓ ﺃﻭ ،Mouseﻤﺎﺴﺢ ﻀﻭﺌﻲ ﺃﻭ
ﻼ ﻜل ﻫﺫﻩ ﺍﻟﺘﻔﺎﺼﻴل ،ﺇﺫ ﺴﻨﻘﺩﻡ ﻟﻙ ﺍﻵﻥ ﺍﻟﺤﺎﺴﻭﺏ ﺒﺼﻭﺭﺓ ﻤﺠﺭﺩﺓ ﻭﻋﺎﻟﻴﺔ ﺍﻟﻤﺴﺘﻭﻯ
ﺩﻉ ﻋﻨﻙ ﻗﻠﻴ ﹰ
ﺘﺴﺎﻋﺩﻙ ﻋﻠﻰ ﻓﻬﻤﻪ ،ﻭ ﺘﻤﻜﻨﻙ ﻓﻲ ﻨﻬﺎﻴﺔ ﺍﻟﻤﻁﺎﻑ ﻤﻥ ﺃﻥ ﺘﺸﻌﺭ ﺃﻨﻙ ﻤﺴﻴﻁﺭ ﻋﻠﻰ ﻤﺠﺭﻴﺎﺕ ﻋﻤﻠﻪ
ﻋﻨﺩﻤﺎ ﺘﻘﻭﻡ ﺒﺒﺭﻤﺠﺘﻪ.
1
.1ﺍﻟﺤﺎﺴﻭﺏ ،ﻤﺎ ﻫﻲ ﺒﻨﻴﺘﻪ ﺍﻟﻭﻅﻴﻔﻴﺔ؟
ﻴﻤﻜﻥ ﻭﻅﻴﻔﻴﹰﺎ ﺘﺼﻨﻴﻑ ﺍﻟﻤﻜﻭﻨﺎﺕ ﺍﻟﺒﻨﻴﻭﻴﺔ ﻟﻠﺤﺎﺴﻭﺏ ﻜﻤﺎ ﻴﻠﻲ:
ﻭﺘﺸﻤل : CPU ﺃﻭ .1ﻭﺤﺩﺓ ﺍﻟﻤﻌﺎﻟﺠﺔ ﺍﻟﻤﺭﻜﺯﻴﺔ
Central Processing Unit
yﻭﺤﺩﺓ ﺍﻟﺤﺴﺎﺏ ﻭﺍﻟﻤﻨﻁﻕ Arithmetic and Logic Unitﺃﻭ ALU
yﻭﺤﺩﺓ ﺍﻟﺘﺤﻜﻡ Control Unit
.2ﻭﺤﺩﺓ ﺍﻟﺫﺍﻜﺭﺓ ﺍﻟﻤﺭﻜﺯﻴﺔ ﺃﻭ ﺍﻟﺭﺌﻴﺴﻴﺔ Unit Central Memory
.3ﻭﺤﺩﺍﺕ ﺍﻟﺩﺨل ﻭﺍﻟﺨﺭﺝ Input and Output Units
Memory
yﻭﺤﺩﺍﺕ ﺍﻟﺩﺨل Input Units
yﻭﺤﺩﺍﺕ ﺍﻟﺨﺭﺝ Output Units
O PU … 1 IPU…1
yﻭﺤﺩﺍﺕ ﺩﺨل/ﺨﺭﺝ Input\Output Units
O PU … 2 IPU…2
O PU … 3
CPU
IPU…3
ﺘﺸﻜﹼل ﻭﺤﺩﺓ ﺍﻟﻤﻌﺎﻟﺠﺔ ﺍﻟﻤﺭﻜﺯﻴﺔ ﻭﺍﻟﺫﺍﻜﺭﺓ ﺍﻟﻤﺭﻜﺯﻴﺔ
O PU … 3 IPU…3 ﺩﻤﺎﻍ ﺍﻟﺤﺎﺴﻭﺏ ﻭﺘﻌﻁﻴﻪ ﻫﻭﻴﺘﻪ ﺍﻟﺨﺎﺼﺔ .ﺇﺫ ﺴﻨﺭﻯ
ﻻﺤﻘﹰﺎ ﺃﻥ ﻟﻜل ﻁﺭﺍﺯ ﺤﺎﺴﻭﺏ ﺘﺸﻜﻴﻠﺘﻪ ﺍﻟﺨﺎﺼﺔ ﻤﻥ
I/ O U … 1 I/OU … 2 I/ O U … 3
ﻤﺤﺩﺩﺓ ﺒﺂﻟﻴﺔ ﻋﻤل ﻤﻌﻴﻨﺔ ﻭﻁﺭﻴﻘﺔ ﺭﺒﻁ ﻤﻊ ﺍﻟﺫﺍﻜﺭﺓ. CPU
ﻭﻟﻭﻻ ﻁﺭﻗﻨﺎ ﺒﺎﻟﺒﺭﻤﺠﺔ ﻋﺎﻟﻴﺔ ﺍﻟﻤﺴﺘﻭﻯ ﻟﻜﺎﻥ ﻻﺒﺩ ﻤﻥ ﻜﺘﺎﺒﺔ ﻜل ﺒﺭﻨﺎﻤﺞ ﺒﻁﺭﻴﻘﺔ ﺨﺎﺼﺔ ﺒﻜل
ﺤﺎﺴﻭﺏ.
ﺃﻤﺎ ﻭﺤﺩﺍﺕ ﺍﻟﺩﺨل ﻭﺍﻟﺨﺭﺝ ﻓﻬﻲ ﺤﻭﺍﺱ ﺍﻟﺤﺎﺴﻭﺏ ﺍﻟﺘﻲ ﺘﻤﻜﻨﻪ ﻤﻥ ﺍﻟﺘﻭﺍﺼل ﻤﻊ ﺍﻟﻌﺎﻟﻡ ﺍﻟﺨﺎﺭﺠﻲ،
ﺘﺩﺨل ﻤﻨﻬﺎ ﺇﻟﻰ ﺍﻟﺩﻤﺎﻍ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻭﺘﺨﺭﺝ ﻤﻨﻪ ﺇﻟﻴﻬﺎ ﺍﻟﻨﺘﺎﺌﺞ.
OPU…3
CPU
IPU…3
ﻤﻜﻭﻨﺎﺕ ﺍﻟﺤﺎﺴﻭﺏ.
Registers
CPU
OPU…3 IPU…3
Arithmetic and Logic ﻭﺤﺩﺓ ﺍﻟﺤﺴﺎﺏ ﻭﺍﻟﻤﻨﻁﻕ
I/OU…1 I/OU…2 I/OU…3 ALU Unitﺃﻭ
ﺍﻟﻤﺴﺅﻭل ﻋﻥ ﺍﻟﻘﻴﺎﻡ ﺒﺎﻟﻌﻤﻠﻴﺎﺕ CPU ﻭﻫﻲ ﺍﻟﺠﺯﺀ ﻓﻲ
ﺍﻟﺤﺴﺎﺒﻴﺔ ﻤﺜل ﺍﻟﺠﻤﻊ ﻭﺍﻟﻁﺭﺡ ﻭﺍﻟﻀﺭﺏ ﻭﺍﻟﻘﺴﻤﺔ ،ﺇﻀﺎﻓﺔ ﺇﻟﻰ ﺁﻟﻴﺎﺕ ﺍﺘﺨﺎﺫ ﺍﻟﻘﺭﺍﺭ ﺍﻟﺘﻲ ﺘﺴﻤﺢ
ﺒﺎﻟﻤﻘﺎﺭﻨﺔ ﺒﻴﻥ ﻋﻨﺼﺭﻴﻥ ﻓﻲ ﺍﻟﺫﺍﻜﺭﺓ ﻟﺘﺤﺩﻴﺩ ﻓﻴﻤﺎ ﺇﺫﺍ ﻜﺎﻨﺎ ﻤﺘﺴﺎﻭﻴﻴﻥ ﺃﻡ ﻻ…..ﺍﻟﺦ.
2
CU ﻭﺤﺩﺓ ﺍﻟﺘﺤﻜﻡ Control Unitﺃﻭ
ﺘﻠﻌﺏ ﺩﻭﺭ ﺍﻟﻤﻨﺴﻕ ﻷﻋﻤﺎل ﺍﻟﺤﺎﺴﻭﺏ ،ﺒﺎﻹﻀﺎﻓﺔ ﺇﻟﻰ ﻜﻭﻨﻬﺎ ﺍﻟﻤﺸﺭﻑ ﺍﻟﻌﺎﻡ ﻋﻠﻰ ﻋﻤل ﺍﻟﻭﺤﺩﺍﺕ
ﺍﻷﺨﺭﻯ .ﻓﻬﻲ ﺘﺤﺩﺩ ﻟﻭﺤﺩﺓ ﺍﻟﺩﺨل ﻤﺘﻰ ﻴﺠﺏ ﻗﺭﺍﺀﺓ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻭﻭﻀﻌﻬﺎ ﻓﻲ ﻭﺤﺩﺓ ﺍﻟﺫﺍﻜﺭﺓ ،ﻭﺘﺨﺒﺭ
ﺃﻴﻀﹰﺎ ﻭﺤﺩﺓ ﺍﻟﺤﺴﺎﺏ ﻭﺍﻟﻤﻨﻁﻕ ﻤﺘﻰ ﻴﺠﺏ ﻤﻌﺎﻟﺠﺔ ﺍﻟﻤﻌﻁﻴﺎﺕ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻲ ﻭﺤﺩﺓ ﺍﻟﺫﺍﻜﺭﺓ ﻭﻤﺘﻰ
ﻴﺠﺏ ﻋﻠﻰ ﻭﺤﺩﺓ ﺍﻟﺨﺭﺝ ﺇﺭﺴﺎﻟﻬﺎ ﻤﻥ ﻭﺤﺩﺓ ﺍﻟﺫﺍﻜﺭﺓ ﺇﻟﻰ ﺃﺤﺩ ﺃﺠﻬﺯﺓ ﺍﻟﺨﺭﺝ.
Registers ﺍﻟﺴﺠﻼﺕ
ﺒﻀﻊ ﺨﺎﻨﺎﺕ ﺫﺍﻜﺭﺓ ﺨﺎﺼﺔ ﺒﻭﺤﺩﺓ ﺍﻟﻤﻌﺎﻟﺠﺔ ﺍﻟﻤﺭﻜﺯﻴﺔ ﺘﺴﺘﺨﺩﻤﻬﺎ ﻓﻲ ﺃﺩﺍﺀ ﻋﻤﻠﻬﺎ ﻭﺘﻨﻔﻴﺫ ﻋﻤﻠﻴﺎﺘﻬﺎ.
OPU…3
CPU
IPU…3
ﺘﺨﺯﻥ ﻫﺫﻩ ﺍﻟﻭﺤﺩﺓ ﺍﻟﻤﻌﻁﻴﺎﺕ ﺍﻟﻤﺩﺨﻠﺔ ﻤﻥ ﻭﺤﺩﺍﺕ
OPU…3 IPU…3 ﺍﻟﺩﺨل ﻤﻤﺎ ﻴﺠﻌﻠﻬﺎ ﻤﺘﺎﺤﺔ ﻤﻥ ﺃﺠل ﺍﻟﻤﻌﺎﻟﺠﺔ ﻋﻨﺩ
ﺍﻟﺤﺎﺠﺔ .ﻜﻤﺎ ﺃﻨﻬﺎ ﺘﺨﺯﻥ ﻨﺘﺎﺌﺞ ﺍﻟﻤﻌﺎﻟﺠﺔ ﺤﺘﻰ ﻨﻘﻭﻡ
I/OU…1 I/OU…2 I/OU…3
ﺒﺈﻅﻬﺎﺭﻫﺎ ﻋﻠﻰ ﺃﺠﻬﺯﺓ ﺍﻟﺨﺭﺝ ﺒﻭﺍﺴﻁﺔ ﻭﺤﺩﺓ ﺍﻟﺨﺭﺝ.
CPU ﻭ ﹸﺘﺸﺤﻥ ﺍﻟﺒﺭﺍﻤﺞ ﺇﻟﻰ ﻭﺤﺩﺓ ﺍﻟﺫﺍﻜﺭﺓ ﻗﺒل ﺃﻥ ﺘﺒﺎﺸﺭ
Memory
ﻋﻨﺎوﻳﻦ
اﻟﺨﺎﻧﺎت
ﺧﺎﻧﺔ
اﻟﺬاآﺮة ﺒﺎﻟﺘﻨﻔﻴﺫ .ﻤﻥ ﺍﻟﻨﺎﺤﻴﺔ ﺍﻟﻌﻤﻠﻴﺔ ﻴﻤﻜﻥ ﺍﻟﻨﻅﺭ ﺇﻟﻰ ﺍﻟﺫﺍﻜﺭﺓ
OPU…1 IPU…1 ﻜﺠﺩﻭل ﻤﻥ ﺨﺎﻨﺎﺕ ﺍﻟﺫﺍﻜﺭﺓ )ﺘﺴﻤﻰ ﺃﻴﻀﹰﺎ ﻜﻠﻤﺎﺕ
OPU…2 IPU…2 ﺍﻟﺫﺍﻜﺭﺓ .(Computer Wordﻟﻜل ﺨﺎﻨﺔ ﺫﺍﻜﺭﺓ ﺩﻟﻴل ﻫﻭ
CPU
OPU…3 IPU…3
ﺭﻗﻤﻬﺎ ﻭﻴﺴﻤﻰ ﺭﻗﻡ ﺍﻟﺨﺎﻨﺔ ﻋﻨﻭﺍﻥ .ﻴﺨﺘﻠﻑ ﺤﺠﻡ ﺍﻟﺨﺎﻨﺔ
OPU…3 IPU…3
ﺃﻭ 32 bit ﺃﻭ ﺘﻜﻭﻥ bit 16 ﺒﺤﺴﺏ ﻁﺭﺍﺯ ﺍﻟﺤﺎﺴﻭﺏ ﻓﻘﺩ
I/OU…1 I/OU…2 I/OU…3 .64 bit
3
ﺍﻟﻤﻌﻁﻴﺎﺕ ﺃﻭ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﻋﻥ ﻁﺭﻴﻕ ﺠﻬﺎﺯﻱ ﻟﻭﺤﺔ ﺍﻟﻤﻔﺎﺘﻴﺢ ﻭﺍﻟﻔﺄﺭﺓ .ﻭﻴﻤﻜﻥ ﺇﻋﻁﺎﺀ ﺍﻟﺼﻭﺭﺓ ﻋﻥ
ﻁﺭﻴﻕ ﺍﻟﻤﺎﺴﺢ ﺍﻟﻀﻭﺌﻲ ﻭﺍﻟﺼﻭﺕ ﻋﻥ ﻁﺭﻴﻕ ﺍﻟﻤﻴﻜﺭﻭﻓﻭﻥ.
OPU…3
CPU
IPU…3 ﻭﺤﺩﺍﺕ ﺍﻟﺘﺨﺯﻴﻥ ﺍﻟﺜﺎﻨﻭﻴﺔ ﻜﻭﺤﺩﺍﺕ ﺩﺨل/ﺨﺭﺝ
OPU…3 IPU…3 ﻗﺩ ﺘﺘﺴﺎﺀل ﺍﻵﻥ ﺃﻴﻥ ﻤﺎ ﻴُﺴﻤﻰ ﻭﺤﺩﺍﺕ ﺍﻟﺘﺨﺯﻴﻥ ﺍﻟﺜﺎﻨﻭﻴﺔ
ﻜﺎﻷﻗﺭﺍﺹ ﺍﻟﺼﻠﺒﺔ Secondary Storage Units
I/OU…1 I/OU…2 I/OU…3
ﻭﻗﺎﺭﺉ CD ﻭﻗﺎﺭﺉ ﺍﻷﻗﺭﺍﺹ ﺍﻟﻤﻀﻐﻭﻁﺔ Hard Disks
ﻓﻲ ﻫﺫﻩ ﺍﻟﺒﻨﻴﺔ؟ ﺃﻟﻴﺴﺕ ﺠﺯﺀﹰﺍ ﺃﺴﺎﺴﻴﹰﺎ ﻤﻨﻬﺎ ،ﻭﻟﻤﺎﺫﺍ ﻟﻡ ﻨـﺄﺕ ﻋﻠﻰ Floppy Disks ﺍﻷﻗﺭﺍﺹ ﺍﻟﻠﻴﻨﺔ
ﺫﻜﺭﻫﺎ؟ ﺃﻭ ﺭﺒﻤﺎ ﻜﻭﻨﻬﺎ ﻭﺴﺎﺌل ﻟﻠﺘﺨﺯﻴﻥ ﻓﺎﻋﺘﺒﺭﻨﺎﻫﺎ ﺫﺍﻜﺭﺍﺕ؟
ﺘﺘﺼﻑ ﺒﻜﻭﻨﻬﺎ ﻭﺤﺩﺍﺕ ﺘﺨﺯﻴﻥ ﺸﺒﻪ Secondary Storage Units ﺇﻥ ﻭﺤﺩﺍﺕ ﺍﻟﺘﺨﺯﻴﻥ ﺍﻟﺜﺎﻨﻭﻴﺔ
ﺩﺍﺌﻡ ﺫﺍﺕ ﺴﻌﺎﺕ ﻜﺒﻴﺭﺓ ﻴﺘﻡ ﻓﻴﻬﺎ ﺤﻔﻅ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻭﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﺘﻲ ﻟﻴﺴﺕ ﻗﻴﺩ ﺍﻻﺴﺘﺨﺩﺍﻡ ﺍﻟﺤﺎﻟﻲ ﻤﻥ ﻗﺒل
ﺍﻟﻭﺤﺩﺍﺕ ﺍﻷﺨﺭﻯ ﻓﻲ ﺍﻟﺤﺎﺴﻭﺏ ﺤﺘﻰ ﺘﺒﺭﺯ ﺍﻟﺤﺎﺠﺔ ﺇﻟﻴﻬﺎ ﺒﻌﺩ ﺴﺎﻋﺎﺕ ﺃﻭ ﺃﻴﺎﻡ ﺃﻭ ﺃﺸﻬﺭ ﺃﻭ ﺤﺘﻰ ﺒﻌﺩ
ﺴﻨﻭﺍﺕ .ﻴﺘﻁﻠﺏ ﺍﻟﻭﺼﻭل ﺇﻟﻰ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﻓﻲ ﻭﺤﺩﺍﺕ ﺍﻟﺘﺨﺯﻴﻥ ﺍﻟﺜﺎﻨﻭﻴﺔ ﺯﻤﻨﹰﺎ ﺃﻜﺒﺭ ﺒﻜﺜﻴﺭ ﻤﻥ ﺯﻤﻥ
ﺍﻟﻭﺼﻭل ﺇﻟﻴﻬﺎ ﻓﻲ ﺍﻟﺫﺍﻜﺭﺓ ﺍﻟﺭﺌﻴﺴﻴﺔ.
ﺇﻥ ﺘﺼﻨﻴﻔﻨﺎ ﻟﻭﺤﺩﺍﺕ ﺍﻟﺘﺨﺯﻴﻥ ﺍﻟﺜﺎﻨﻭﻴﺔ ﻓﻲ ﺍﻟﺒﻨﻴﺔ ﺍﻟﻭﻅﻴﻔﻴﺔ ﻫﻭ ﺃﻨﻬﺎ ﻭﺤﺩﺍﺕ ﺩﺨل/ﺨﺭﺝ! ﻓﻨﺤﻥ ﻨﺨﺯﻥ
ﻋﻠﻴﻬﺎ ﺍﻟﺒﺭﺍﻤﺞ ﻭﻏﻴﺭﻫﺎ ﻤﻥ ﻤﻌﻠﻭﻤﺎﺕ ﺤﻴﻨﺎﹰ ،ﻭﻫﻲ ﻫﻨﺎ ﺒﻤﺜﺎﺒﺔ ﻭﺤﺩﺓ ﺨﺭﺝ ،ﻭﻨﺴﺘﺭ ﺩ ﻤﻨﻬﺎ ﻤﺎ ﺴﺒﻕ ﺃﻥ
ﺨﺯﻨﺎﻩ ﺤﻴﻨﹰﺎ ﺁﺨﺭ ،ﻭﻫﻲ ﻫﻨﺎ ﺘﻠﻌﺏ ﺩﻭﺭ ﻭﺤﺩﺓ ﺩﺨل.
4
ﺇﺫﻥ ﻜل ﻤﺎ ﻫﻭ ﺨﺎﺭﺝ ﺩﻤﺎﻍ ﺍﻟﺤﺎﺴﻭﺏ ﺍﻟﻤﺅﻟﻑ ﻤﻥ ﻭﺤﺩﺓ ﺍﻟﻤﻌﺎﻟﺠﺔ ﺍﻟﻤﺭﻜﺯﻴﺔ ﻭﺍﻟﺫﺍﻜﺭﺓ ﺍﻟﺭﺌﻴﺴﻴﺔ
ﻴُﻌﺘﺒﺭ ﻁﺭﻓﻴﹰﺎ ،Peripheralﻭﺒﺎﻟﺘﺎﻟﻲ ﻋﻼﻗﺘﻪ ﻤﻊ ﺍﻟﺩﻤﺎﻍ ﺇﻤﺎ ﻋﻼﻗﺔ ﺩﺨل ﺃﻭ ﻋﻼﻗﺔ ﺨﺭﺝ.
ﻟﻜﻨﻙ ﻤﺤﻕ ﺇﺫﺍ ﻟﻡ ﺘﻘﺒل ﺒﺴﻬﻭﻟﺔ ﺘﺼﻨﻴﻑ ﻭﺤﺩﺍﺕ ﺍﻟﺘﺨﺯﻴﻥ ﺍﻟﺜﺎﻨﻭﻴﺔ ﻜﻭﺤﺩﺍﺕ ﺩﺨل/ﺨﺭﺝ .ﺇﺫ ﺃﻥ ﻤﺎ
ﻨﻌﺭﻓﻪ ﻋﻥ ﻭﺤﺩﺍﺕ ﺍﻟﺩﺨل ﺃﻭ ﺍﻟﺨﺭﺝ ﺤﺘﻰ ﺍﻵﻥ ﺃﻨﻬﺎ ﺤﻭﺍﺱ ﺍﻟﺤﺎﺴﻭﺏ ﻓﻲ ﺘﻌﺎﻤﻠﻪ ﻤﻊ ﺍﻹﻨﺴﺎﻥ ،ﻓﻬﻲ
ﻼ ﻋﺒﺭ ﺍﻟﺸﺎﺸﺔ ﺃﻭ
ﻼ ﻋﺒﺭ ﻟﻭﺤﺔ ﺍﻟﻤﻔﺎﺘﻴﺢ ﺃﻭ ﺍﻟﻔﺄﺭﺓ ﻭ ﹸﺘﻅﻬﺭ ﻟﻪ ﻨﺘﺎﺌﺞ ﻤﺜ ﹰ
ﺘﺄﺨﺫ ﻤﻨﻪ ﻤﻌﻁﻴﺎﺕ ﻤﺜ ﹰ
ﺍﻟﻁﺎﺒﻌﺔ .ﺃﻤﺎ ﻭﺴﺎﺌﻁ ﺍﻟﺘﺨﺯﻴﻥ ﺍﻟﺜﺎﻨﻭﻴﺔ ﻫﺫﻩ ،ﻓﻬﻲ ﻻ ﺘﺘﻌﺎﻤل ﻤﺒﺎﺸﺭﺓ ﻤﻊ ﺍﻹﻨﺴﺎﻥ ،ﺒل ﺘﺴﺘﺨﺩﻡ ﻟﻠﺩﺨل
ﻭﺍﻟﺨﺭﺝ ﻓﻲ ﺍﻟﺤﺎﺴﻭﺏ ﻨﻔﺴﻪ ،ﻓﻜﻴﻑ ﺫﻟﻙ؟
ﻟﻘﺩ ﺒﺩﺃﻨﺎ ﺒﻤﺤﺎﻜﺎﺓ ﻭﺘﺸﺒﻴﻪ ﻭﻅﺎﺌﻑ ﺍﻟﺤﺎﺴﻭﺏ ﺒﻤﺎ ﻨﺠﺩﻩ ﻟﺩﻯ ﺍﻟﺒﺸﺭ ﻤﻥ ﺩﻤﺎﻍ ﻭﺤﻭﺍﺱ .ﻓﺈﺫﺍ ﺃﻜﻤﻠﻨﺎ
ﻭﻓﻕ ﻨﻔﺱ ﺍﻟﻤﻨﻬﺞ ،ﻨﺠﺩ ﺃﻥ ﺩﻭﺭ ﻭﺤﺩﺍﺕ ﺍﻟﺘﺨﺯﻴﻥ ﺍﻟﺜﺎﻨﻭﻴﺔ ﻫﻲ ﻜﺩﻭﺭ ﺍﻟﻭﺭﻕ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻺﻨﺴﺎﻥ.
ﻼ ﻻ ﻴﻘﻭﻤﻭﻥ ﺒﺤﺸﺭ ﻜل ﻤﺎ ﻴﺤﺘﺎﺠﻭﻨﻪ ﻓﻲ ﺃﻋﻤﺎﻟﻬﻡ ﻭﻓﻲ ﺤﻠﻬﻡ ﻟﻠﻤﺴﺎﺌل ﻤﻥ ﻤﻌﻁﻴﺎﺕ
ﻓﺎﻟﻤﻌﻠﻤﻭﻥ ﻤﺜ ﹰ
ﺭﻗﻤﻴﺔ ﻭﻨﺼﻴﺔ ﻭﻏﻴﺭﻫﺎ ﻭﻤﻥ ﻗﻭﺍﻨﻴﻥ ﺭﻴﺎﻀﻴﺔ ﻭﻓﻴﺯﻴﺎﺌﻴﺔ ﻓﻲ ﺫﺍﻜﺭﺍﺘﻬﻡ ﺍﻟﻤﺤﺩﻭﺩﺓ .ﺒل ﻓﻲ ﺤﻘﻴﻘﺔ ﺍﻷﻤﺭ
ﻼ ﺒﻤﻌﺎﻟﺠﺔ ﻤﺴﺄﻟﺔ ﻤﺎ ،ﻋﺒﺭ
ﻫﻡ ﻻ ﻴﺴﺘﻁﻴﻌﻭﻥ ﺫﻟﻙ .ﺇﺫ ﻻﺒﺩ ﻟﻬﻡ ﻤﻥ ﺸﺤﻥ ﺫﺍﻜﺭﺘﻬﻡ ﻋﻨﺩﻤﺎ ﻴﻘﻭﻤﻭﻥ ﻤﺜ ﹰ
ﺃﺨﺫ ﻤﻌﻠﻭﻤﺎﺕ ﻤﻥ ﻜﺘﺏ ﺘﺘﻌﻠﻕ ﺒﻤﻭﻀﻭﻉ ﺍﻟﻤﺴﺄﻟﺔ .ﻜﻤﺎ ﻻﺒﺩ ﻟﻬﻡ ﻓﻲ ﻜﺜﻴﺭ ﻤﻥ ﺍﻷﺤﻴﺎﻥ ﻤﻥ ﻜﺘﺎﺒﺔ
ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﻨﺎﺘﺠﺔ ﻋﻥ ﺤل ﺍﻟﻤﺴﺎﺌل ﻋﻠﻰ ﺍﻟﻭﺭﻕ ﻟﻜﻲ ﻴﺴﺘﺨﺩﻤﻭﻫﺎ ﻻﺤﻘ ﹰﺎ.
ﺇﻥ ﻭﺴﺎﺌﻁ ﺍﻟﺘﺨﺯﻴﻥ ﺍﻟﺜﺎﻨﻭﻴﺔ ،ﻭﻨﺴﻤﻴﻬﺎ ﺃﺤﻴﺎﻨﹰﺎ ﺍﻟﺫﺍﻜﺭﺓ ﺍﻟﺜﺎﻨﻭﻴﺔ ،ﻫﻲ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻠﺤﺎﺴﻭﺏ ﺫﺍﻜﺭﺓ ﺩﺍﺌﻤﺔ
ﻟﻠﻤﻌﻠﻭﻤﺎﺕ ﻜﻤﺎ ﺍﻟﻭﺭﻕ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻺﻨﺴﺎﻥ .ﺇﻻ ﺃﻥ ﻁﺭﻴﻘﺔ ﺘﻌﺎﻤل ﺍﻟﺤﺎﺴﻭﺏ ﻤﻌﻬﺎ ،ﻜﻤﺎ ﺴﻨﺭﻯ ﻻﺤﻘ ﹰﺎ
ﻋﻨﺩﻤﺎ ﻨﺘﻌﺎﻤل ﻤﻌﻬﺎ ﺒﺭﻤﺠﻴ ﹰﺎ ،ﻻ ﺘﺨﺘﻠﻑ ﻜﺜﻴﺭﹰﺍ ﻋﻥ ﻁﺭﻴﻘﺔ ﺘﻌﺎﻤﻠﻪ ﻤﻊ ﻭﺤﺩﺍﺕ ﺩﺨل/ﺨﺭﺝ .ﺇﺫ ﻴﺭﺴل
ﺇﻟﻴﻬﺎ )ﻴﻜﺘﺏ ﻓﻴﻬﺎ( ﺍﻟﻨﺘﺎﺌﺞ ﻭﻴﺄﺨﺫ ﻤﻨﻬﺎ )ﻴﻘﺭﺃ ﻤﻨﻬﺎ( ﺍﻟﻤﻌﻁﻴﺎﺕ ﺒﻁﺭﻴﻘﺔ ﻤﺸﺎﺒﻬﺔ ﻜﺜﻴﺭﹰﺍ ﻟﻁﺭﻴﻘﺔ ﺘﻌﺎﻤﻠﻪ
ﻤﻊ ﺃﺠﻬﺯﺓ ﺍﻟﺩﺨل/ﺍﻟﺨﺭﺝ ﺍﻷﺨﺭﻯ.
ﻋﻠﻰ ﺍﻟﺘﻭﺍﻟﻲ. A, B, C ﺇﺫ ﺴﺘﻜﺭﺱ ﺨﺎﻨﺔ ﺫﺍﻜﺭﺓ ﻟﻜل ﻤﻥ ﺍﻟﻤﺘﺤﻭﻻﺕ
5
ﻴﻤﻜﻥ ﺍﻟﺘﻌﺒﻴﺭ ﻋﻥ ﻁﺭﻴﻘﺔ ﺘﻨﻔﻴﺫ ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﺤﺴﺎﺒﻴﺔ ﺒﺸﻜل ﺘﻔﺼﻴﻠﻲ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻟﻐﺔ ﺭﻤﺯﻴﺔ )ﺒﺎﻹﻨﻜﻠﻴﺯﻴﺔ(
ﻫﻲ ﻓﻌﻠﻴﹰﺎ ﻤﺠﻤﻭﻋﺔ ﺘﻌﻠﻴﻤﺎﺕ ) (instructionﺘﺤﺩﺩ ﻟﻠﺤﺎﺴﻭﺏ ﻤﺎﻴﺠﺏ ﻓﻌﻠﻪ ﻟﻠﻘﻴﺎﻡ ﺒﺎﻟﻤﻁﻠﻭﺏ )ﺠﻤﻊ
ﻤﺘﺤﻭﻟﻴﻥ( ﻜﻤﺎ ﻴﻠﻲ:
LOAD A, R1 R1 ﻤﻥ ﺍﻟﺫﺍﻜﺭﺓ ﺇﻟﻰ ﺍﻟﺴﺠل A .1ﺍﺸﺤﻥ )ﺍﻨﻘل( ﻗﻴﻤﺔ ﺍﻟﻤﺘﺤﻭل
LOAD B, R2 R2 ﻤﻥ ﺍﻟﺫﺍﻜﺭﺓ ﺇﻟﻰ ﺍﻟﺴﺠل B .2ﺍﺸﺤﻥ )ﺍﻨﻘل( ﻗﻴﻤﺔ ﺍﻟﻤﺘﺤﻭل
ADD R1,R2,R3 R3 ﻭﻀﻊ ﺍﻟﻨﺘﻴﺠﺔ ﻓﻲ R2 ﻭ R1 .3ﺍﺠﻤﻊ ﻗﻴﻤﺔ ﺍﻟﺴﺠل
STORE R3,C C ﻓﻲ ﺨﺎﻨﺔ ﺍﻟﺫﺍﻜﺭﺓ R3 .4ﺨﺯﻥ ﻗﻴﻤﺔ ﺍﻟﺴﺠل
ﻨﻌﻡ ﻜل ﻫﺫﺍ ﻟﺠﻤﻊ ﻋﺩﺩﻴﻥ ،ﻓﻬﺫﻩ ﻫﻲ ﻁﺭﻴﻘﺔ ﺍﻟﺤﺎﺴﻭﺏ "ﺃﺴﻁﻭﺭﺓ ﺍﻟﺫﻜﺎﺀ ﻓﻲ ﺒﻌﺽ ﺍﻷﺫﻫﺎﻥ" ﻟﺠﻤﻊ
ﻋﺩﺩﻴﻥ.
ﺇﺫﺍ ﻗﻤﻨﺎ ﺒﺄﺨﺫ ﻟﻘﻁﺔ ﻗﺒل ﺍﻟﺘﻨﻔﻴﺫ ،ﻓﻤﺎ ﻨﺭﺍﻩ ﻓﻌﻠﻴﹰﺎ ﻓﻲ ﺫﺍﻜﺭﺓ ﺍﻟﺤﺎﺴﻭﺏ ﻫﻭ ﻤﺎ ﻴﻠﻲ:
ﺨﺎﻨﺎﺕ ﺍﻟﺫﺍﻜﺭﺓ ﺫﺍﺕ ﺍﻟﻌﻨﺎﻭﻴﻥ 12 ،11 ،10ﻋﻠﻰ ﺍﻟﺘﻭﺍﻟﻲ ﻭﺍﻟﺘﻲ A, B, C ﹸﻜﺭﺴﺕ ﻟﻠﻤﺘﺤﻭﻻﺕ
ﺘﺤﺘﻭﻱ ﻋﻠﻰ ﺍﻟﻘﻴﻡ 0 ،128 ،64ﻭﺘﻤﺜﻴﻠﻬﺎ ﺒﺎﻟﻨﻅﺎﻡ ﺍﻟﺜﻨﺎﺌﻲ ﻫﻭ:
0000 0000 0000 0000 0000 0000 0100 0000
0000 0000 0000 0000 0000 0000 1000 0000
0000 0000 0000 0000 0000 0000 0000 0000
ﻴﻤﻜﻨﻙ ﺃﻥ ﺘﻐﻤﺽ ﻋﻴﻨﻴﻙ ﻭﻻ ﺘﺤﺩﻕ ،ﺇﻥ ﺃﺭﺩﺕ ،ﺒﻬﺫﻩ ﺍﻟﻤﺘﺘﺎﻟﻴﺎﺕ ﺍﻟﻌﺠﻴﺒﺔ ﻤﻥ ﺍﻷﺼﻔﺎﺭ ﻭﺍﻟﻭﺍﺤﺩﺍﺕ
)ﺍﻟﻨﻅﺎﻡ ﺍﻟﺜﻨﺎﺌﻲ( ﺤﻴﺙ ﺠﻤﻴﻊ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﻓﻲ ﺍﻟﺤﺎﺴﻭﺏ ﺘﻤﺜل ﺒﻭﺍﺴﺘﻁﻬﺎ.
ﻭﻟﻜﻥ ﺭﻜﺯ ﻤﻌﻲ ﻋﻠﻰ ﻤﺠﻤﻭﻋﺔ ﺍﻷﻓﻜﺎﺭ ﺍﻟﺘﺎﻟﻴﺔ ﺍﻟﺘﻲ ﺘﻡ ﺍﺴﺘﺨﻼﺼﻬﺎ ﻤﻥ ﺍﻟﻤﺜﺎل.
6
.1ﺍﻟﺤﺎﺴﻭﺏ ،ﻤﺒﺎﺩﺉ ﻋﻤﻠﻪ ﺍﻷﺴﺎﺴﻴﺔ
ﻴﺘﻜﻭﻥ ﺃﻱ ﺒﺭﻨﺎﻤﺞ ﻤﻥ ﺠﺯﺀ ﻤﻌﻁﻴﺎﺕ )ﻤﺘﺤﻭﻻﺕ( ﻭﺠﺯﺀ ﺘﻌﻠﻴﻤﺎﺕ •
ﺒﺘﻨﻔﻴﺫﻫﺎ. CPU ﻴﺠﺏ ﺃﻥ ﺘﻜﻭﻥ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻭﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﻓﻲ ﺍﻟﺫﺍﻜﺭﺓ ﺍﻟﻤﺭﻜﺯﻴﺔ ﻟﺘﺒﺎﺸﺭ •
ﺘﺨﺯﻥ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻭﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﻓﻲ ﺃﻱ ﻤﻜﺎﻥ ﻓﻲ ﺍﻟﺫﺍﻜﺭﺓ ،ﻟﻴﺱ ﻫﻨﺎﻙ ﺠﺯﺀ ﻓﻲ •
ﺍﻟﺫﺍﻜﺭﺓ ﻤﺨﺼﺹ ﻟﻠﺘﻌﻠﻴﻤﺎﺕ ﻓﻘﻁ ﻭﺠﺯﺀ ﻤﺨﺼﺹ ﻟﻠﻤﻌﻁﻴﺎﺕ ﻓﻘﻁ .ﻓﻔﻲ ﻤﺜﺎﻟﻨﺎ ﻟﻥ
ﻴﺨﺘﻠﻑ ﺍﻟﻭﻀﻊ ﻟﻭ ﺃﺯﺤﻨﺎ ﺍﻟﻤﻌﻁﻴﺎﺕ ﺇﻟﻰ ﺨﺎﻨﺎﺕ ﺍﻟﺫﺍﻜﺭﺓ ، 15 ،14 ،13
Von ﻭﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﻜﺎﻨﺕ ﻓﻲ ﺍﻟﺨﺎﻨﺎﺕ . 12 ، 11 ، 10 ، 9ﺇﻨﻪ ﻤﺒﺩﺃ ﻓﻭﻥ ﻨﻴﻭﻤﺎﻥ
ﺍﻟﺫﻱ ﺘﻌﻤﻠﻪ ﻭﻓﻘﻪ ﺠﻤﻴﻊ ﺤﻭﺍﺴﻴﺒﻨﺎ. Neuman
ﺜﻡ ﺍﻟﺘﻌﻠﻴﻤﺔ (n+1ﻤﺎ ﻟﻡ n ﺇﻥ ﻁﺭﻴﻘﺔ ﺘﻨﻔﻴﺫ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﻫﻭ ﺩﺍﺌﻤﹰﺎ ﺘﺴﻠﺴﻠﻲ )ﺘﻨﻔﱠﺫ ﺍﻟﺘﻌﻠﻴﻤﺔ •
ﺘﻜﻥ ﻫﻨﺎﻙ ﺘﻌﻠﻴﻤﺔ ﺨﺎﺼﺔ ﺘﻁﻠﺏ ﻜﺴﺭ ﻫﺫﺍ ﺍﻟﺘﺴﻠﺴل ،ﻟﻴﺫﻫﺏ ﺍﻟﺘﻨﻔﻴﺫ ﺇﻟﻰ ﻋﻨﻭﺍﻥ
ﺘﻌﻠﻴﻤﺔ ﻤﺎ ﻟﻴﺴﺕ ﺍﻟﺘﻌﻠﻴﻤﺔ ﺍﻟﺘﺎﻟﻴﺔ) .ﺭﺒﻤﺎ ﺘﻜﻭﻥ ﻗﺩ ﺴﻤﻌﺕ ﺒﺘﻌﻠﻴﻤﺔ .(GOTO
ﺇﻥ ﻁﺒﻴﻌﺔ ﻭ ﺃﺴﻤﺎﺀ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﻭﻁﺭﻴﻘﺔ ﻜﺘﺎﺒﺘﻨﺎ ﻟﻬﺎ ﻫﻨﺎ )ﺘﺭﻤﻴﺯﻫﺎ( ﻫﻲ ﻟﺤﺎﺴﻭﺏ •
ﺍﻓﺘﺭﺍﻀﻲ ،ﺇﺫ ﺃﻥ ﻟﻜل ﻁﺭﺍﺯ ﺘﻌﻠﻴﻤﺎﺘﻪ ﻭﻁﺭﻕ ﺘﺭﻤﻴﺯﻫﺎ ﺍﻟﺨﺎﺼﺔ ،ﻭﻟﻜﻨﻬﺎ ﺠﻤﻴﻌﹰﺎ ﻟﻬﺎ
ﻨﻔﺱ ﺍﻟﻤﺒﺩﺃ ﺍﻟﻤﺫﻜﻭﺭ ﻓﻲ ﺍﻟﻤﺜﺎل.
C=A+B 2ـ ﻟﻐﺎﺕ ﺍﻟﻤﺠﻤﻊ ،assambly languageﻓﻬﻲ ﻜﺎﻟﻤﺜﺎل ﺍﻟﺫﻱ ﺭﺃﻴﻨﺎﻩ ﺘﻤﺜﻴ ﹰ
ﻼ ﻟﺒﺭﻨﺎﻤﺞ
ﺒﺎﻟﺘﻌﻠﻴﻤﺎﺕ ﺍﻟﺭﻤﺯﻴﺔ .LOAD, ADD, STORE
C=A+B 3ـ ﻟﻐﺎﺕ ﻋﺎﻟﻴﺔ ﺍﻟﻤﺴﺘﻭﻯ ،High Level Programming Languageﻭﻫﻲ ﺍﻟﺒﺭﻨﺎﻤﺞ
ﺍﻟﻠﻐﺔ ﺍﻷﻗﺭﺏ ﻟﻔﻬﻤﻨﺎ ،ﻭﻟﻠﺘﻌﺒﻴﺭ ﻤﺒﺎﺸﺭ ﹰﺓ ﻋﻤﺎ ﻨﺭﻴﺩ ،ﻭﺍﻟﺘﻲ ﺘﻘﻭل ﺍﺠﻤﻊ ﺍﻟﻌﺩﺩﻴﻥ ﺍﻟﻤﻭﺠﻭﺩﻴﻥ ﻓﻲ
ﻭﻀﻊ ﺍﻟﻨﺘﻴﺠﺔ ﻓﻲ ﺍﻟﻤﺘﺤﻭل .C A, B ﻤﺘﺤﻭﻟﻴﻥ
7
ﻟﻐﺔ ﺍﻵﻟﺔ ،ﻟﻐﺔ ﺍﻟﻤﺠﻤﻊ
ﻴﻜﺘﺏ ﺍﻟﻤﺒﺭﻤﺠﻭﻥ ﺘﻌﻠﻴﻤﺎﺘﻬﻡ ﺒﻠﻐﺎﺕ ﻤﺨﺘﻠﻔﺔ ﻟﻠﺒﺭﻤﺠﺔ ،ﺒﻌﻀﻬﺎ ﻤﻔﻬﻭﻡ ﻤﺒﺎﺸﺭﺓ ﻤﻥ ﻗﺒل ﺍﻟﺤﺎﺴﻭﺏ
ﻭﺒﻌﻀﻬﺎ ﺍﻵﺨﺭ ﻴﺤﺘﺎﺝ ﺇﻟﻰ ﺨﻁﻭﺍﺕ ﺘﺭﺠﻤﺔ ﻭﺴﻴﻁﺔ .ﻴﻭﺠﺩ ﺤﺎﻟﻴﹰﺎ ﺍﻟﻤﺌﺎﺕ ﻤﻥ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ
ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻭﺍﻟﺘﻲ ﻴﻤﻜﻥ ﺘﺼﻨﻴﻔﻬﺎ ﺇﻟﻰ ﺍﻷﻨﻭﺍﻉ ﺍﻟﺜﻼﺜﺔ ﺍﻟﺴﺎﺒﻘﺔ.
ﻴﺴﺘﻁﻴﻊ ﺍﻟﺤﺎﺴﻭﺏ ﺃﻥ ﻴﻔﻬﻡ ﻤﺒﺎﺸﺭﺓ ﻟﻐﺔ ﺍﻵﻟﺔ ﺍﻟﺨﺎﺼﺔ ﺒﻪ ﺍﻟﺘﻲ ﻫﻲ ﺍﻟﻠﻐﺔ ﺍﻟﻁﺒﻴﻌﻴﺔ ﻟﻪ .ﻴﻤﻜﻥ ﺘﻌﺭﻴﻑ
ﻫﺫﻩ ﺍﻟﻠﻐﺔ ﻋﻠﻰ ﺃﻨﻬﺎ ﺍﻟﻠﻐﺔ ﺍﻟﻤﻌﺭﻓﺔ ﻤﻥ ﻗﺒل ﺍﻟﺒﻨﻴﺔ ﺍﻟﺼﻠﺒﺔ ﻟﻠﺤﺎﺴﻭﺏ.
ﺘﺘﺄﻟﻑ ﻟﻐﺎﺕ ﺍﻵﻟﺔ ﺒﺸﻜل ﻋﺎﻡ ﻤﻥ ﺴﻼﺴل ﻤﻥ ﺍﻷﻋﺩﺍﺩ ﻋﻠﻰ ﺸﻜل ﻤﺠﻤﻭﻋﺎﺕ ﻤﻥ ﺍﻷﺼﻔﺎﺭ
ﻭﺍﻟﻭﺍﺤﺩﺍﺕ ﺍﻟﺘﻲ ﺘﻌﻁﻲ ﺍﻷﻭﺍﻤﺭ ﻟﻠﺤﺎﺴﻭﺏ ﻤﻥ ﺃﺠل ﺘﻨﻔﻴﺫ ﺘﻌﻠﻴﻤﺎﺘﻪ ﺍﻷﻭﻟﻴﺔ ﻜل ﺘﻌﻠﻴﻤﺔ ﻋﻠﻰ ﺤﺩﺓ.
ﺘﺭﺘﺒﻁ ﻟﻐﺎﺕ ﺍﻵﻟﺔ ﺒﺎﻵﻟﺔ ،ﺃﻱ ﺒﺎﻟﻨﻭﻉ ﺍﻟﺨﺎﺹ ﻟﻠﺤﺎﺴﻭﺏ ،ﺍﺭﺘﺒﺎﻁﹰﺎ ﻭﺜﻴﻘﹰﺎ ﺒﻤﻌﻨﻰ ﺃﻥ ﻟﻐﺔ ﺁﻟﺔ ﻤﺎ
ﻴﻤﻜﻥ ﺃﻥ ﺘﺴﺘﺨﺩﻡ ﻓﻘﻁ ﻟﻨﻭﻉ )ﻁﺭﺍﺯ( ﻤﺤﺩﺩ ﻓﻘﻁ ﻤﻥ ﺍﻟﺤﻭﺍﺴﻴﺏ.
ﺘﻌﺘﺒﺭ ﻟﻐﺎﺕ ﺍﻵﻟﺔ ﻟﻐﺎﺕ ﺜﻘﻴﻠﺔ ﻭﻤﺭﻫﻘﺔ ﻟﻠﻜﺎﺌﻥ ﺍﻟﺒﺸﺭﻱ ﻭﻴﻤﻜﻥ ﺃﻥ ﻨﺭﻯ ﺫﻟﻙ ﻤﻥ ﺨﻼل ﺍﻟﻤﺜﺎل
ﺍﻟﻤﺫﻜﻭﺭ ﻟﺠﺯﺀ ﻤﻥ ﺒﺭﻨﺎﻤﺞ ﻤﻜﺘﻭﺏ ﺒﻠﻐﺔ ﺍﻵﻟﺔ ﻭﺍﻟﺫﻱ ﻴﻘﻭﻡ ﺒﺠﻤﻊ ﻋﺩﺩﻴﻥ ﻓﻲ ﻤﺘﺤﻭﻟﻴﻥ ﻭﻴﺨﺯﻥ
ﺍﻟﻨﺘﻴﺠﺔ ﻓﻲ ﻤﺘﺤﻭل ﺁﺨﺭ.
ﻤﻊ ﺍﻨﺘﺸﺎﺭ ﺍﻟﺤﻭﺍﺴﻴﺏ ،ﺃﺼﺒﺢ ﻤﻥ ﺍﻟﻤﻼﺤﻅ ﺃﻥ ﻋﻤﻠﻴﺔ ﺍﻟﺒﺭﻤﺠﺔ ﺒﻠﻐﺔ ﺍﻵﻟﺔ ﻫﻲ ﻟﻴﺴﺕ ﻋﻤﻠﻴﺔ ﻓﻬﻲ
ﻻ ﻤﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺴﻼﺴل ﺍﻷﻋﺩﺍﺩ ﺍﻟﺘﻲ ﻴﻔﻬﻤﻬﺎ ﺍﻟﺤﺎﺴﻭﺏ ﻤﺒﺎﺸﺭﺓ
ﺒﻁﻴﺌﺔ ﻭﻤﻤﻠﱢﺔ ﻟﻤﻌﻅﻡ ﺍﻟﻤﺒﺭﻤﺠﻴﻥ .ﻭﺒﺩ ﹰ
ﺒﺩﺃ ﺍﻟﻤﺒﺭﻤﺠﻭﻥ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻤﺼﻁﻠﺤﺎﺕ ﺇﻨﻜﻠﻴﺯﻴﺔ ﻤﺨﺘﺼﺭﺓ ﻟﻠﺘﻌﺒﻴﺭ ﻋﻥ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻷﻭﻟﻴﺔ ﻟﻠﺤﺎﺴﻭﺏ.
ﺘﻤﺜل ﻫﺫﻩ ﺍﻟﻤﺼﻁﻠﺤﺎﺕ ﺍﻷﺴﺎﺱ ﺍﻟﺫﻱ ﺍﻨﻁﻠﻘﺕ ﻤﻨﻪ ﻟﻐﺎﺕ ﺍﻟﻤﺠﻤﻊ ﺤﻴﺙ ﺘﻡ ﺘﻁﻭﻴﺭﺒﺭﺍﻤﺞ ﻤﺘﺭﺠﻤﺎﺕ
ﺘﻘﻭﻡ ﺒﺘﺤﻭﻴل ﺍﻟﺒﺭﺍﻤﺞ ﻤﻥ ﻟﻐﺔ ﺍﻟﻤﺠﻤﻊ ﺇﻟﻰ ﻟﻐﺔ ﺍﻵﻟﺔ.
8
1010 0000 0000 0000 0000 0000 0001 0100
1011 0000 0000 0000 0000 0000 0010 0100
0000 0000 0000 0000 0011 0010 0001 0010
1100 0000 0000 0000 0000 0000 0011 0101
ﻻﺸﻙ ﺃﻥ ﺍﻟﺘﻌﺒﻴﺭ ﺒﻠﻐﺔ ﺍﻟﻤﺠ ﻤﱢﻊ ﺃﻭﻀﺢ ﺒﻜﺜﻴﺭ ﻤﻥ ﻟﻐﺔ ﺍﻷﺭﻗﺎﻡ ﺍﻟﺜﻨﺎﺌﻴﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﻠﻐﺔ ﺍﻵﻟﺔ .ﻜﻤﺎ ﺃﻨﻨﺎ
ﻨﻼﺤﻅ ﺃﻥ ﺍﻟﻨﺹ ﺍﻟﺒﺭﻤﺠﻲ ﻭﺍﻀﺢ ﻭﻤﻔﻬﻭﻡ )ﻨﻭﻋﹰﺎ ﻤﺎ( ﻤﻥ ﻗﺒل ﺍﻟﺒﺸﺭ ﻟﻜﻨﻪ ﻟﻴﺱ ﻤﻔﻬﻭﻤﹰﺎ ﻤﻥ ﻗﺒل
ﺍﻟﺤﻭﺍﺴﻴﺏ ﺤﺘﻰ ﺘﺘﻡ ﻋﻤﻠﻴﺔ ﺘﺭﺠﻤﺘﻪ ﺇﻟﻰ ﻟﻐﺔ ﺍﻵﻟﺔ.
ﻻ ﺤﻅ ﺃﻥ ﻫﻨﺎﻙ ﻨﻭﻉ ﻤﻥ ﺍﻟﺘﻘﺎﺒل ﺒﻴﻥ ﻟﻐﺔ ﺍﻵﻟﺔ ﻭﻟﻐﺔ ﺍﻟﻤﺠﻤﻊ ،ﻓﻬﻤﺎ ﻤﻥ ﻨﻔﺱ ﺍﻟﺴﻭﻴﺔ ﻭﻟﻜﻥ ﻴﻌﺒﺭ
ﻋﻥ ﻨﻔﺱ ﺍﻟﺸﻲﺀ ﺇﻤﺎ ﺒﻁﺭﻴﻘﺔ ﺭﻤﺯﻴﺔ ﺃﻭ ﺜﻨﺎﺌﻴﺔ.
ﺘﺴﺎﻋﺩ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ ﻋﺎﻟﻴﺔ ﺍﻟﻤﺴﺘﻭﻯ ﺍﻟﻤﺒﺭﻤﺠﻴﻥ ﻋﻠﻰ ﻜﺘﺎﺒﺔ ﺘﻌﻠﻴﻤﺎﺕ ﻴﻤﻜﻥ ﺃﻥ ﺘﺒﺩﻭ ﻗﺭﻴﺒﺔ ﻤﻥ
ﺍﻟﻌﺒﺎﺭﺍﺕ ﺒﺎﻟﻠﻐﺔ ﺍﻻﻨﻜﻠﻴﺯﻴﺔ ﻭﺘﺤﺘﻭﻱ ﻋﻠﻰ ﺍﻟﺭﻤﻭﺯ ﺍﻟﺭﻴﺎﻀﻴﺔ ﺍﻟﺸﺎﺌﻌﺔ ﺍﻟﻤﺴﺘﺨﺩﻤﺔ.
ﻼ ﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺠﻤﻊ ﺍﻟﻤﻜﺘﻭﺏ ﺒﻠﻐﺔ ﻋﺎﻟﻴﺔ ﺍﻟﻤﺴﺘﻭﻯ ﺃﻥ ﻴﺤﺘﻭﻱ ﻋﻠﻰ ﺍﻟﺘﻌﻠﻴﻤﺔ ﺍﻟﺘﺎﻟﻴﺔ:
ﻴﻤﻜﻥ ﻤﺜ ﹰ
C= A+B
ﻜﺜﻴﺭﺓ ﺠﺩﹰﺍ ﻫﻲ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ ﻋﺎﻟﻴﺔ ﺍﻟﻤﺴﺘﻭﻯ ﻭﻤﺘﻨﻭﻋﺔ ﻓﻲ ﻤﻔﺭﺍﺩﺘﻬﺎ ﻭﻗﻭﺍﻋﺩﻫﺎ ﻭﺇﻤﻜﺎﻨﺎﺘﻬﺎ ﻋﻥ
Fortran, ﺍﻟﺘﻌﺒﻴﺭ ﻋﻥ ﺤﻠﻨﺎ ﻟﻠﻤﺴﺎﺌل .ﻭﺭﺒﻤﺎ ﺘﻜﻭﻥ ﻗﺩ ﺴﻤﻌﺕ ﺒﻠﻐﺎﺕ ﺒﺭﻤﺠﺔ ﻗﻭﻴﺔ ﺍﻻﻨﺘﺸﺎﺭ ﻤﺜل:
Basic, Pascal, C, C++, Java, Lisp, Ada
9
ﺇﻨﻬﺎ ﺃﻤﺜﻠﺔ ﻋﻥ ﻟﻐﺎﺕ ﻤﺴﺘﺨﺩﻤﺔ ﻜﺜﻴﺭﹰﺍ ﻓﻲ ﺍﻟﺒﺭﻤﺠﺔ ﻭﻜﻠﻬﺎ ﺘﺠﺘﻤﻊ ﺘﺤﺕ ﺘﺼﻨﻴﻑ ﻟﻐﺎﺕ ﻋﺎﻟﻴﺔ
ﺍﻟﻤﺴﺘﻭﻯ ﺃﻱ ﺃﻨﻬﺎ ﻟﻴﺴﺕ ﻟﻐﺎﺕ ﻤﻨﺨﻔﻀﺔ ﺍﻟﻤﺴﺘﻭﻯ ﻭﺍﻹﻨﺨﻔﺎﺽ ﻫﻨﺎ ﻴﻌﻨﻲ ﺍﻟﻤﺴﺘﻭﻯ ﺍﻟﻤﺎﺩﻱ
ﻟﻠﺤﺎﺴﻭﺏ ،ﺃﻱ ﺃﻨﻬﺎ ﻟﻴﺴﺕ ﻟﻐﺔ ﺁﻟﺔ ﺃﻭ ﻟﻐﺔ ﻤﺠﻤﻊ.
.3ﺍﻟﻤﺘﺭﺠﻤﺎﺕ
ﺘﺴﻤﻰ ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﺘﻲ ﺘﻘﻭﻡ ﺒﺘﺤﻭﻴل ﻨﺹ ﺒﺭﻨﺎﻤﺞ ﻤﻥ ﻟﻐﺔ ﺇﻟﻰ ﻟﻐﺔ ﺃﺨﺭﻯ "ﺒﺎﻟﻤﺘﺭﺠﻤﺎﺕ" .compilers
ﻴﻤﻜﻥ ﻟﻌﻤﻠﻴﺔ ﺍﻟﺘﺭﺠﻤﺔ ﻟﺒﺭﻨﺎﻤﺞ ﻤﻥ ﻟﻐﺔ ﻋﺎﻟﻴﺔ ﺍﻟﻤﺴﺘﻭﻯ ﺇﻟﻰ ﻟﻐﺔ ﺍﻵﻟﺔ ﺃﻥ ﺘﺄﺨﺫ ﺯﻤﻨ ﹰﺎ ﻜﺒﻴﺭﹰﺍ.
ﻜﺘﺎﺒﺔ ﻨﺹ ﺍﻟﺒﺭﻨﺎﻤﺞ )ﺒﻠﻐﺔ ﺒﺭﻤﺠﺔ ﻋﺎﻟﻴﺔ ﺍﻟﻤﺴﺘﻭﻯ( ﺒﺎﺴﺘﺨﺩﺍﻡ ﻤﺤﺭﺭ ﻟﻠﻨﺼﻭﺹ ﺜﻡ ﺘﺨﺯﻴﻨﻪ ﻋﻠﻰ
ﺍﻟﺫﺍﻜﺭﺓ ﺍﻟﺜﺎﻨﻭﻴﺔ.
ﺍﻟﻭﺼل ﻤﺎ ﺒﻴﻥ ﺒﺭﻨﺎﻤﺞ ﻟﻐﺔ ﺍﻵﻟﺔ ﻭﺍﻟﻤﻜﺘﺒﺎﺕ ﺃﻭ ﺍﻟﺤﺯﻡ ﺍﻟﺒﺭﻤﺠﻴﺔ )ﺒﺭﺍﻤﺞ ﺠﺯﺌﻴﺔ ﻤﺴﺒﻘﺔﺍﻟﺘﻌﺭﻴﻑ(
ﻭﺨﻠﻕ ﺒﺭﻨﺎﻤﺞ ﺘﻨﻔﻴﺫﻱ executableﻭﺘﺨﺯﻴﻨﻪ ﻋﻠﻰ ﺍﻟﺫﺍﻜﺭﺓ ﺍﻟﺜﺎﻨﻭﻴﺔ.
ﺘﺄﺨﺫ ﻭﺤﺩﺓ ﺍﻟﻤﻌﺎﻟﺠﺔ ﺍﻟﻤﺭﻜﺯﻴﺔ ﻜل ﺘﻌﻠﻴﻤﺔ ﻭﺘﻨﻔﺫﻫﺎ ﻭﻤﻥ ﺍﻟﻤﻤﻜﻥ ﺃﻥ ﺘﺨﺯﻥ ﺍﻟﻤﻌﻁﻴﺎﺕ ﺍﻟﺠﺩﻴﺩﺓ
ﺍﻟﻨﺎﺘﺠﺔ ﺃﺜﻨﺎﺀ ﻋﻤﻠﻴﺔ ﺍﻟﺘﻨﻔﻴﺫ.
ﻴﻭﺠﺩ ﺃﻴﻀﹰﺎ ﺒﻌﺽ ﺃﻨﻭﺍﻉ ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﺘﻲ ﺘﻘﻭﻡ ﺒﻌﻤﻠﻴﺔ ﺍﻟﺘﺭﺠﻤﺔ ﺇﻟﻰ ﻟﻐﺔ ﺍﻵﻟﺔ ﻭﺍﻟﺘﻲ ﻨﺩﻋﻭﻫﺎ ﺍﻟﻤﻔﺴﺭﺍﺕ
ﺍﻟﺘﻲ ﺘﺴﺘﻁﻴﻊ ﺘﻨﻔﻴﺫ ﺒﺭﺍﻤﺞ ﻤﻜﺘﻭﺒﺔ ﺒﻠﻐﺔ ﻋﺎﻟﻴﺔ ﺍﻟﻤﺴﺘﻭﻯ ﻤﺒﺎﺸﺭﺓ ﺩﻭﻥ ﺍﻟﺤﺎﺠﺔ ﺇﻟﻰ Interpreter
ﺘﺨﺯﻴﻥ ﺘﺭﺠﻤﺔ ﻫﺫﻩ ﺍﻟﺒﺭﺍﻤﺞ ﺇﻟﻰ ﻟﻐﺔ ﺍﻵﻟﺔ ﻋﻠﻰ ﻭﺤﺩﺓ ﺍﻟﺨﺯﻥ ﺍﻟﺜﺎﻨﻭﻱ.
ﻟﻜﻥ ﺘﻨﻔﻴﺫ ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﻤُﺘﺭﺠﻤﺔ ﻫﻭ ﺃﺴﺭﻉ ﻤﻥ ﺘﻨﻔﻴﺫ ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﻤُﻔﺴﺭﺓ .ﻋﻤﻭﻤﺎﹰ ،ﻨﺤﺘﺎﺝ ﺇﻟﻰ ﺍﻟﻤﻔﺴﺭﺍﺕ
ﻓﻲ ﻤﺭﺤﻠﺔ ﺘﻁﻭﻴﺭ ﺍﻟﺒﺭﺍﻤﺞ ﺤﻴﺙ ﺘﻘﻭﻡ ﺒﺈﻋﺎﺩﺓ ﺘﺭﺠﻤﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻋﻨﺩ ﺃﻴﺔ ﺇﻀﺎﻓﺔ ﺠﺩﻴﺩﺓ ﺃﻭ ﻋﻨﺩ
ﺘﺼﺤﻴﺢ ﺃﻱ ﺨﻁﺄ .ﻟﻜﻥ ﺒﻌﺩ ﺍﻻﻨﺘﻬﺎﺀ ﻤﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ،ﻴﻤﻜﻥ ﺇﻨﺸﺎﺀ ﻨﺴﺨﺔ ﻤﺘﺭﺠﻤﺔ ﻋﻨﻪ ﺇﻟﻰ ﻟﻐﺔ ﺍﻵﻟﺔ
ﻤﻥ ﺃﺠل ﺘﻨﻔﻴﺫﻩ ﺒﻔﻌﺎﻟﻴﺔ ﺃﻜﺒﺭ.
10
ﻤﺜﺎل ﻤﺘﻘﺩﻡ:
ﺍﺫﻫﺏ ﺇﻟﻰ ﺍﻟﺘﻌﻠﻴﻤﺔ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻲ ﻋﻨﻭﺍﻥ ﺍﻟﺫﺍﻜﺭﺓ ﺭﻗﻡ N#ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﺴﺠل ﻤﺴﺎﻭﻴ ﹰﺎ ﻟﻠﺼﻔﺭ JZ
ﺃﻱ ﺼﻔﺭ. Zero ﻤﻥ Z ﺃﻱ ﺃﻨﻘﺹ، Decrement ﻤﻥ Dec ﺃﻱ ﺍﻗﻔﺯ، Jump ﻤﻥ JMP ﻤﻼﺤﻅﺔ:
A=1
N = 12
10 If (N = 0) Then GoTo 100
A=A*N
N=N-1
GoTo 10
100
A
N
STORE A, 1
STORE N, 12
LOAD N, R0
JZ R0, #13
LOAD A, R1
ADD R1,R0,R3
STORE R3,A
DEC R0
STORE R0, N
JMP #5
STOP
11
ﺍﻟﺨﻼﺼﺔ
ﺍﻟﺤﺎﺴﻭﺏ ﺠﻬﺎﺯ ﻗﺎﺩﺭ ﻋﻠﻰ ﺇﻨﺠﺎﺯ ﺍﻟﺤﺴﺎﺒﺎﺕ ﻭﺍﻟﻤﻘﺎﺭﻨﺔ ﻷﺨﺫ ﻗﺭﺍﺭ ﺒﺎﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﻭﺍﺠﺏ ﺘﻨﻔﻴﺫﻫﺎ
ﺒﺴﺭﻋ ٍﺔ ﻫﺎﺌﻠﺔ ﺘﻔﻭﻕ ﺴﺭﻋﺔ ﺍﻟﻜﺎﺌﻥ ﺍﻟﺒﺸﺭﻱ ﺒﻤﻼﻴﻴﻥ ﻭﺤﺘﻰ ﺒﻼﻴﻴﻥ ﺍﻟﻤﺭﺍﺕ.
ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ،ﺘﺴﺘﻁﻴﻊ ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﺍﻟﺤﻭﺍﺴﻴﺏ ﺍﻟﺸﺨﺼﻴﺔ ﻓﻲ ﻴﻭﻤﻨﺎ ﻫﺫﺍ ﺍﻟﻘﻴﺎﻡ ﺒﻌﺸﺭﺍﺕ ﺍﻟﻤﻼﻴﻴﻥ
ﻤﻥ ﻋﻤﻠﻴﺎﺕ ﺍﻟﺠﻤﻊ )ﻤﻤﺎ ﻴﺴﺘﺭﻋﻲ ﺍﻻﻨﺘﺒﺎﻩ ﻭﺍﻟﺘﻔﻜﻴﺭ :ﻜﻴﻑ ﻨﺘﺄﻜﺩ ﻤﻥ ﻗﻴﺎﻡ ﺍﻟﺸﺨﺹ ﺒﺠﻤﻊ ﺍﻷﻋﺩﺍﺩ
ﺒﺸﻜل ﺼﺤﻴﺢ؟(.
ﻴﺴﺘﻁﻴﻊ ﺃﺴﺭﻉ ﺍﻟﺤﻭﺍﺴﻴﺏ ﻓﻲ ﻴﻭﻤﻨﺎ ﻫﺫﺍ ﺍﻟﻘﻴﺎﻡ ﺒﻤﺌﺎﺕ ﺍﻟﺒﻼﻴﻴﻥ ﻤﻥ ﻋﻤﻠﻴﺎﺕ ﺍﻟﺠﻤﻊ ﻓﻲ ﺍﻟﺜﺎﻨﻴﺔ )ﺃﻱ
ﺤﻭﺍﻟﻲ ﻤﺎ ﻴﺴﺘﻁﻴﻊ ﺍﻟﻘﻴﺎﻡ ﺒﻪ ﻤﺌﺎﺕ ﺍﻵﻻﻑ ﻤﻥ ﺍﻟﺒﺸﺭ ﻤﻥ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ ﻓﻲ ﺴﻨﺔ ﻭﺍﺤﺩﺓ!!(
ﻭﻴﻭﺠﺩ ﺤﻭﺍﺴﻴﺏ ﺘﻌﻤل ﻓﻲ ﻤﺨﺎﺒﺭ ﺍﻟﺒﺤﺙ ﺍﻟﻌﻠﻤﻲ ،ﺘﺴﺘﻁﻴﻊ ﺇﻨﺠﺎﺯ ﺘﺭﻟﻴﻭﻥ ﺘﻌﻠﻴﻤﺔ ﻓﻲ ﺍﻟﺜﺎﻨﻴﺔ.
ﺘﺩﻋﻰ instructions ﻭﻓﻘﹰﺎ ﻟﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ Data ﺘﻘﻭﻡ ﺍﻟﺤﻭﺍﺴﻴﺏ ﺒﻤﻌﺎﻟﺠﺔ ﺍﻟﻤﻌﻁﻴﺎﺕ
ﻭﺍﻟﺘﻲ ﺘﻘﻭﺩ ﺍﻟﺤﺎﺴﺏ ﻤﻥ ﺨﻼل ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻷﻓﻌﺎل ﺍﻟﻤﺤﺩﺩﺓ ﻭ ﺍﻟﻤﺭﺘﺒﺔ. Programs ﺒﺎﻟﺒﺭﺍﻤﺞ
ﻨﺩﻋﻭ ﺍﻟﻤﻜﻭﻨﺎﺕ ﺍﻟﻤﺨﺘﻠﻔﺔ )ﻤﺜل ﻟﻭﺤﺔ ﺍﻟﻤﻔﺎﺘﻴﺢ ،ﺍﻟﺸﺎﺸﺔ ،ﺍﻷﻗﺭﺍﺹ ﺍﻟﺼﻠﺒﺔ ،ﺍﻟﺫﺍﻜﺭﺓ ﻭﻭﺤﺩﺓ
،ﻓﻲ ﺤﻴﻥ ﻨﺴﻤﻲ ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﺘﻲ Hardware ﺍﻟﻤﻌﺎﻟﺠﺔ( ﺍﻟﺘﻲ ﻴﺘﺄﻟﻑ ﻤﻨﻬﺎ ﺍﻟﺤﺎﺴﺏ ﺒﺎﻟﺒﻨﻴﺔ ﺍﻟﺼﻠﺒﺔ
ﻨﻨﻔﺫﻫﺎ ﻋﻠﻰ ﺍﻟﺤﺎﺴﺏ ﺒﺎﻟﺒﻨﻴﺔ ﺍﻟﻤﺭﻨﺔ .Software
ﺇﻥ ﺘﻌﻠﻴﻤﺎﺕ ﺍﻟﺤﺎﺴﻭﺏ ﻋﻠﻰ ﻤﺴﺘﻭﻯ ﺍﻟﺒﻨﻴﺔ ﺍﻟﻤﺎﺩﻴﺔ )ﺘﻌﻠﻴﻤﺎﺕ ﻟﻐﺔ ﺍﻵﻟﺔ( ﻫﻲ ﺘﻌﻠﻴﻤﺎﺕ ﺒﺴﻴﻁﺔ:
ﺤﺴﺎﺒﺎﺕ ﺒﺴﻴﻁﺔ ،ﺇﺴﻨﺎﺩ ﻗﻴﻡ ﺇﻟﻰ ﺨﺎﻨﺔ ﺫﺍﻜﺭﺓ ،ﻤﻘﺎﺭﻨﺔ ﺒﻴﻥ ﻗﻴﻡ.
ﺇﻥ ﺘﺴﻠﺴل ﺘﻨﻔﻴﺫ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﺘﺴﻠﺴﻠﻲ ،ﻭﻴﻤﻜﻥ ﺘﻐﻴﻴﺭ ﻫﺫﺍ ﺍﻟﺘﺴﻠﺴل ﺒﺘﻌﻠﻴﻤﺔ ﻗﻔﺯ ،ﻤﻤﺎ ﻴﺴﻤﺢ ﺒﺎﻟﻌﻭﺩﺓ ﺇﻟﻰ
ﺘﻨﻔﻴﺫ ﺘﻌﻠﻴﻤﺎﺕ ﻤﻥ ﺠﺩﻴﺩ ،ﻤﻤﺎ ﻴﻌﻨﻲ ﺘﻜﺭﺍﺭ ﺘﻨﻔﻴﺫ ﺘﻌﻠﻴﻤﺎﺕ .ﺇﻥ ﻫﺫﺍ ﺍﻟﺘﻜﺭﺍﺭ ﻭﺴﺭﻋﺔ ﺍﻟﺤﺎﺴﻭﺏ
ﺍﻟﻜﺒﻴﺭﺓ ﺃﻋﻤﺎﻟﻪ ﺍﻟﻬﺎﺌﻠﺔ.
ﻭﻟﻜﻥ ﻫﺫﻩ ﺍﻷﻋﻤﺎل ﺍﻟﻌﻅﻴﻤﺔ ﺘﻨﻅﻤﻬﺎ ﺒﺭﺍﻤﺞ ،ﻫﺫﻩ ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﺘﻲ ﻨﺤﺩﺩ ﻓﻴﻬﺎ ﻟﻠﺤﺎﺴﻭﺏ ﻤﺎ ﻴﺠﺏ ﺍﻟﻘﻴﺎﻡ
ﺒﻬﺎ ،ﻫﻭ ﺍﻟﺫﻱ ﻴﻌﻁﻲ ﻟﻬﺫﺍ ﺍﻟﺤﺎﺴﻭﺏ ﻋﻅﻤﺘﻪ .ﻭﻤﻨﻬﺎﺠﻨﺎ ﻫﺫﺍ ﻤﻜﺭﺱ ﻟﻤﻌﺭﻓﺔ ﺍﻟﺒﺩﺍﻴﺔ ﺃﻭ ﺍﻷﺴﺎﺴﻴﺎﺕ
ﻟﻬﺫﺍ ﺍﻟﻌﻠﻡ ﺍﻟﺭﺍﺌﻊ ﺍﻟﺒﺭﻤﺠﺔ.
12
ﺃﺴﺌﻠﺔ
.1ﺇﻥ ﺒﻨﻴﺔ ﺍﻟﺫﺍﻜﺭﺓ ﺍﻟﻤﺭﻜﺯﻴﺔ ﻟﻠﺤﻭﺍﺴﻴﺏ ﻤﺼﻤﻤﺔ ﺒﺤﻴﺙ ﻴﻭﺠﺩ ﺃﺠﺯﺍﺀ ﻤﻨﻬﺎ ﻤﻜﺭﺱ ﻟﺨﺯﻥ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ
ﻓﻘﻁ ﻭﺃﺠﺯﺍﺀ ﻟﺨﺯﻥ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻓﻘﻁ) .ﺨﻁﺄ(
.5ﻫل ﻨﺼﻨﻑ ﻟﻐﺔ ++Cﻋﺎﻟﻴﺔ ﺍﻟﻤﺴﺘﻭﻯ ﻷﻨﻬﺎ ﺤﺩﻴﺜﺔ ﺠﺩﺍﹰ؟ ﻋﻠل ﺍﻹﺠﺎﺒﺔ.
13