You are on page 1of 2

‫‪ 4.

1‬ﻋﺗﺎﺩ ﻭ ﺑﺭﻣﺟﻳﺎﺕ ‪Hardware and Software‬‬

‫ﺍﻟﻌﺗﺎﺩ ﻛﻝ ﻣﺎ ﻫﻭ ﻣﺎﺩﻱ ﻣﻠﻣﻭﺱ ﻣﻥ ﺩﺍﺭﺍﺕ ﻣﺗﻛﺎﻣﻠﺔ ‪, integrated circuits‬ﺑﻁﺎﻗﺎﺕ ﺍﻟﻛﺗﺭﻭﻧﻳﺔ‪,‬‬


‫ﺫﺍﻛﺭﺍﺕ‪..‬ﺍﻟﺦ‪ .‬ﻋﻠﻰ ﺍﻟﻌﻛﺱ ﻣﻥ ﺩﻟﻙ ﺍﻟﻐﻳﺭ ﻣﻠﻣﻭﺱ ﻣﺛﻝ ﺣﻠﻭﻝ ﻣﺷﺎﻛﻝ ﺭﻳﺎﺿﻳﺔ‪ ,‬ﺧﻭﺍﺭﺯﻣﻳﺎﺕ‪ ,‬ﺗﻌﻠﻳﻣﺎﺕ‪ ,‬ﺃﻱ‬
‫ﺃﻥ ﺍﻟﺑﺭﻣﺟﻳﺎﺕ ﻣﻛﻭﻧﺔ ﻣﻥ ﺧﻭﺍﺭﺯﻣﻳﺎﺕ ﻭ ﺗﻣﺛﻳﻠﻬﺎ ﺃﻟﻣﻌﻠﻭﻣﺎﺗﻲ ﻛﺎﻟﺑﺭﺍﻣﺞ )ﻓﻲ ﻟﻐﺎﺕ ﻣﺗﻁﻭﺭﺓ( ﺍﻟﺗﻲ ﺗﻛﻭﻥ‬
‫ﻣﺧﺯﻧﺔ ﻓﻲ ﻭﺣﺩﺍﺕ ﺗﺧﺯﻳﻥ)ﺃﻗﺭﺍﺹ ‪.(...‬‬

‫‪ 1.4.1‬ﺗﻣﺛﻳﻝ ﺍﻟﻣﻌﻠﻭﻣﺎﺕ ‪Data representation‬‬

‫ﻓﻲ ﻣﺳﺗﻭﻯ ﺍﻟﻣﺗﺭﺟﻣﺎﺕ ‪) compilers‬ﻣﺳﺗﻭﻯ ﻋﺎﻟﻲ( ﺗﻧﻭﻉ ﺍﻟﺑﻳﺎﻧﺎﺕ ﺃﻭ ﺍﻟﻣﻌﻁﻳﺎﺕ )‪ (data types‬ﻳﻅﻬﺭ‬
‫ﺑﺄﻧﻪ ﻣﺳﺗﻘﻝ ﻋﻥ ﻧﻭﻉ ﺍﻟﻣﻌﺎﻟﺟﺎﺕ‪ .‬ﻓﻲ ﺍﻟﻭﺍﻗﻊ ﺃﺻﻧﺎﻑ ﺍﻟﺑﻳﺎﻧﺎﺕ ﺍﻟﻣﻌﺎﻟﺟﺔ ﻓﻲ ﺍﻟﻠﻐﺎﺕ ﺍﻟﻣﺗﻁﻭﺭﺓ )ﺍﻟﺗﻲ ﺻﻣﻣﺕ‬
‫ﺃﺻﻼ ﻟﺗﺳﻬﻳﻝ ﺑﺭﻣﺟﺔ ﻭﻅﺎﺋﻑ ﺻﻌﺑﺔ ﺑﺑﻳﺎﻧﺎﺕ ﻣﺭﻛﺑﺔ ﻭ ﻣﻌﻘﺩﺓ( ﻫﻲ ﺃﻏﻧﻰ ﺑﻛﺛﻳﺭ ﻣﻥ ﺗﻠﻙ ﺍﻟﻣﺳﺗﻌﻣﻠﺔ ﻓﻲ‬
‫ﻣﺳﺗﻭﻯ ﻟﻐﺔ ﺍﻵﻟﺔ‪ .‬ﻛﻣﺎ ﺫﻛﺭ ﻣﻥ ﻗﺑﻝ ﻧﻌﻠﻡ ﺃﻥ ﺍﻟﻔﺭﻕ ﺃﻭ ﺍﻟﻣﺳﺎﻓﺔ ﺑﻳﻥ ﺍﻟﻠﻐﺔ ﺍﻟﻣﺗﻁﻭﺭﺓ ﻭ ﻟﻐﺔ ﺍﻵﻟﺔ ﺗﺋﻭﻝ ﺍﻟﻰ‬
‫ﺍﻟﻧﻘﺻﺎﻥ )ﻟﻛﻥ ﺩﻭﻥ ﺍﻻﻧﻌﺩﺍﻡ( ﻣﻊ ﺗﻁﻭﺭ ﺍﻟﻣﻌﺎﻟﺟﺎﺕ‪ .‬ﻟﻛﻥ ﻫﺩﻩ ﺍﻟﻣﺳﺎﻓﺔ ﻻ ﺗﻧﻌﺩﻡ ﻭ ﺩﻟﻙ ﺭﺍﺟﻊ ﻟﻭﺟﻭﺩ ﺣﺩﻭﺩ‬
‫ﺗﻛﻧﻭﻟﻭﺟﻳﺔ ﺩﺍﺋﻣﺎ‪ .‬ﻓﻣﺛﻼ ﻓﻲ ﻫﻧﺩﺳﺔ ﻣﻌﻳﻧﺔ )ﻣﻌﺎﻟﺟﺎﺕ ‪ (8bits‬ﺩﺍﺕ ﺷﻛﻝ ﻣﻌﻠﻭﻣﺔ ﺃﺳﺎﺳﻳﺔ ‪ ,byte‬ﻛﻝ ﺃﺻﻧﺎﻑ‬
‫ﺍﻟﺑﻳﺎﻧﺎﺕ ﺍﻷﺧﺭﻯ ﺍﻟﻣﻌﻘﺩﺓ ﻳﺟﺏ ﺃﻥ ﺗﺷﻛﻝ ﺑﻣﺟﻣﻭﻋﺔ ‪ bytes‬ﻓﻲ ﻣﺳﺗﻭﻯ ﺍﻟﻠﻐﺎﺕ ﺍﻟﻣﺗﻁﻭﺭﺓ‪ ,‬ﻓﻲ ﺍﻟﻣﺳﺗﻭﻯ‬
‫ﺍﻟﺑﺭﻣﺟﻲ‪ .‬ﻫﺩﻩ ﺍﻟﺑﺳﺎﻁﺔ ﻓﻲ ﺍﻟﻬﻧﺩﺳﺔ ﻳﻘﺎﺑﻠﻬﺎ ﺗﻌﻘﻳﺩﺍﺕ ﻓﻲ ﺍﻟﻣﺗﺭﺟﻣﺎﺕ )ﻻﺣﺗﻭﺍء ﻛﻝ ﺃﺻﻧﺎﻑ ﺍﻟﺑﻳﺎﻧﺎﺕ( ﺗﺅﺩﻱ‬
‫ﺇﻟﻰ ﺑﻁء ﻓﻲ ﺍﻟﺗﻧﻔﻳﺫ‪ .‬ﻋﺩﺩ ﺣﻘﻳﻘﻲ ﻣﺛﻼ ﻣﻌﺭﻑ ﻓﻲ )ﺑﺎﻟﻧﻘﻁﺔ ﺍﻟﻌﺎﺋﻣﺔ ‪ 32bits (floating point‬ﻳﺣﺗﺎﺝ ‪1‬‬
‫‪ byte‬ﻟﻸﺱ‪ 3 bytes ,‬ﻟﻠﻌﺩﺩ ﺣﻳﺙ ﻳﺧﺻﺹ ‪ 1 bit‬ﻟﻺﺷﺎﺭﺓ‪ .‬ﻳﺳﺗﻠﺯﻡ ﻫﺩﺍ ﺍﻟﺗﻣﺛﻳﻝ ﻋﺩﺩ ﻣﻥ ﺍﻟﻌﻣﻠﻳﺎﺕ ﻋﻠﻰ‬
‫ﻋﺩﺩ ﻣﻥ ﺍﻟـ ‪ bytes‬ﺍﻟﻣﺧﺗﻠﻔﺔ ﻻﻧﺟﺎﺯ ﻋﻣﻠﻳﺔ ﻭﺍﺣﺩﺓ )ﺗﺑﺩﻭ ﻟﻧﺎ ﺑﺳﻳﻁﺔ ﻓﻲ ﻟﻐﺔ ﻣﺗﻁﻭﺭﺓ( ﻋﻠﻰ ﻋﺩﺩ ﺣﻘﻳﻘﻲ‪.‬‬

‫‪ -‬ﺍﻷﻋﺩﺍﺩ ﺍﻟﺻﺣﻳﺣﺔ ‪Integers‬‬

‫ﻓﻲ ﺗﺻﻣﻳﻡ ﺷﻛﻝ ﺍﻷﻋﺩﺍﺩ ﺍﻟﺻﺣﻳﺣﺔ ﺍﻟﻣﺳﺗﻌﻣﻠﺔ ﺑﺗﻌﻠﻳﻣﺎﺕ ﺍﻟﻣﻌﺎﻟﺞ ﻳﺭﺍﻋﻰ ﻫﺩﻓﻳﻥ ﺃﺳﺎﺳﻳﻳﻥ ﻣﺗﻧﺎﻗﺿﻳﻥ‪,‬‬
‫ﻣﻥ ﺟﻬﺔ ﺃﻛﺑﺭ ﻣﺟﺎﻝ ﻟﻠﻘﻳﻡ ﺍﻟﻣﻣﻛﻧﺔ ﺑﺄﻗﻝ ﺣﺟﻡ )ﺃﻗ َﻝ ‪ bits‬ﻣﻣﻛﻥ( ﻣﻥ ﺟﻬﺔ ﺃﺧﺭﻯ‪ .‬ﺍﻟﻁﺭﻳﻘﺔ ﺍﻷﺛﺭ‬
‫ﺇﺳﺗﻌﻣﺎﻝ ﻫﻲ ﺗﻌﺭﻳﻑ ﻋﺩﺓ ﺃﺷﻛﺎﻝ ﺛﺎﺑﺗﺔ ﻟﻠﺑﻳﺎﻧﺎﺕ )ﻣﺛﻝ ‪ Longint, Integer, Shortint‬ﻓﻲ ﻟﻐﺔ‬
‫‪ .( Pascal‬ﻧﻼﺣﻅ ﻓﻲ ﺗﺣﺩﻳﺩ ﺃﻧﻭﺍﻉ ﺍﻷﻋﺩﺍﺩ ﺍﻟﺻﺣﻳﺣﺔ ﻳﻘﺎﺑﻠﻪ ﺣﺟﺯ ﻓﻲ ﺍﻟﺫﺍﻛﺭﺓ ﺑﺎﻟـ ‪ byte‬ﻭ ﻣﺿﺎﻋﻔﺎﺗﻪ‬
‫)‪ (..4,2,1‬ﺩﺍﺋﻣﺎ ﻣﻊ ﺗﺧﺻﻳﺹ ‪ 1bit‬ﻟﻺﺷﺎﺭﺓ‪ .‬ﻧﺩﻛﺭ ﺃﻥ ﻓﻲ ﻣﻌﺎﻟﺟﺎﺕ ‪ Intel‬ﺍﻟـ ‪ 8086‬ﻳﻌﺎﻟﺞ ﺑﻳﺎﻧﺎﺕ ‪8‬‬
‫ﺃﻭ ‪ ,16bits‬ﺃﻣﺎ ‪ 80386‬ﻓﻳﻌﺎﻟﺞ ﺃﺻﻧﺎﻑ ‪ 32-16-8‬ﺣﺗﻰ ‪) 64bits‬ﻧﻔﺱ ﺍﻟﺗﻁﻭﺭ ﻣﻭﺟﻭﺩ ﻋﻧﺩ‬
‫ﺛﻡ ‪ .(68030 ,68020‬ﺗﻛﻣﻥ ﺃﻫﻣﻳﺔ ﻫﺫﺍ ﺍﻟﺗﻁﻭﺭ ﻓﻲ ﺟﻌﻝ ﻋﻣﻠﻳﺎﺕ‬ ‫‪ Motorola‬ﻣﻊ ﻣﻌﺎﻟﺟﺎﺕ ‪َ 68000‬‬
‫ﻣﻌﺎﻟﺟﺔ ﺃﻧﻭﺍﻉ ﺃﻷﻋﺩﺍﺩ ﺍﻟﺻﺣﻳﺣﺔ ﺍﻟﻛﺑﻳﺭﺓ ﺗﻧﻔﺫ ﺑﺣﺟﻣﻬﺎ ﺍﻟﻔﻌﻠﻲ ﺩﺍﺧﻝ ﺍﻟﻣﻌﺎﻟﺞ‪ ,‬ﻣﻣﺎ ﻳﺅﺩﻱ ﺇﻟﻰ ﺯﻳﺎﺩﺓ ﻓﻲ‬
‫ﺳﺭﻋﺔ ﺍﻟﺗﻧﻔﻳﺫ‪.‬‬

‫‪ -‬ﻣﻌﻠﻭﻣﺎﺕ ﻣﻧﻁﻘﻳﺔ ‪Boolean type‬‬

‫ﺃﺑﺳﻁ ﻣﻌﻠﻭﻣﺔ ﻳﻣﻛﻥ ﺗﻣﺛﻳﻠﻬﺎ ﻫﻲ ‪ boolean‬ﻣﻧﻁﻘﻲ‪ .‬ﻓﻲ ﻣﺳﺗﻭﻯ ﺍﻟﻌﺗﺎﺩ ‪ 1bit‬ﻳﻛﻔﻲ ﻟﺗﻣﺛﻳﻝ ﻫﺫﺍ ﺍﻟﻧﻭﻉ‪,‬‬
‫ﻟﻛﻥ ﻓﻲ ﻣﺳﺗﻭﻯ ﺍﻟﻣﺗﺭﺟﻡ ﻳﻣﻛﻥ ﺃﻥ ﻳﺳﺗﻌﻣﻝ ‪ 8bits‬ﺃﻭ ‪ 1byte‬ﻛﻭﺣﺩﺓ ﻓﻲ ﺍﻟﺫﺍﻛﺭﺓ ﻟﺗﻣﺛﻳﻝ ‪ 8‬ﻣﺗﻐﻳﺭﺍﺕ‬
‫ﻣﻧﻁﻘﻳﺔ‪ .‬ﻫﺫﺍ ﺍﻹﺳﺗﻌﻣﺎﻝ ﺍﻟﻣﻛﺛﻑ ﻟﻭﺍﺣﺩ ‪ byte‬ﻳﺅﺩﻱ ﺇﻟﻰ ﻋﻣﻠﻳﺎﺕ ﻣﻌﻘﺩﺓ )ﺇﺯﺍﺣﺔ ﻳﻣﻳﻥ‪/‬ﻳﺳﺎﺭ‪ ,‬ﻣﻘﺎﺭﻧﺔ‪(..‬‬
‫ﻹﺳﺗﺧﺭﺍﺝ ﻣﺗﻐﻳﺭ ﻣﻧﻁﻘﻲ ﻭﺍﺣﺩ‪ ,‬ﻳﻧﺗﺞ ﻋﻧﻬﺎ ﺯﻳﺎﺩﺓ ﻓﻲ ﻣﺩﺓ ﺍﻟﺗﻧﻔﻳﺫ‪ .‬ﺇﺳﺗﻌﻣﺎﻝ ‪ 1byte‬ﻟﺗﻣﺛﻳﻝ ﻣﻌﻠﻭﻣﺔ‬
‫ﻣﻧﻁﻘﻳﺔ ﻳﻛﻭﻥ ﺃﺳﺭﻉ ﻓﻲ ﺍﻹﺳﺗﻌﻣﺎﻝ‪.‬‬

‫‪ -‬ﺣﺭﻭﻑ ﻭ ﺭﻣﻭﺯ ‪Characters‬‬

‫ﺃﻏﻠﺑﻳﺔ ﺃﻧﻅﻣﺔ ﺗﺭﻣﻳﺯ ﺍﻟﺣﺭﻭﻑ )‪ (standard characters coding‬ﺗﺳﺗﻌﻣﻝ )‪ 1byte (8bits‬ﻟﺗﻣﺛﻳﻝ‬


‫ﻫﺫﺍ ﺍﻟﻧﻭﻉ ﻣﻥ ﺍﻟﻣﻌﻠﻭﻣﺎﺕ )ﺣﺭﻭﻑ ﺃﺑﺟﺩﻳﺔ‪ ,‬ﺭﻣﻭﺯ‪,‬ﺃﺭﻗﺎﻡ‪ (..‬ﻣﺛﻝ )‪ .ASCII(7bits‬ﻫﺫﺍ ﻳﺳﻬﻝ ﻛﺛﻳﺭﺍ‬
‫ﺇﺳﺗﻌﻣﺎﻟﻬﻡ ﻓﻲ ﻟﻐﺔ ﺃﻵﻟﺔ‪ .‬ﻓﻲ ﻣﻌﺎﻟﺟﺎﺕ ‪ Intel 80x86‬ﻣﺛﻼ ﻳﻭﺟﺩ ﺗﻌﻠﻳﻣﺎﺕ ﺧﺎﺹ ﺑﻧﻘﻝ ﺳﻠﺳﻠﺔ ﺣﺭﻭﻑ‬
‫)‪ (movsb movsw‬ﺣﻳﺙ ﻳﻌﺑﺄ ﻋﺩﺩﻫﺎ ﻣﺳﺑﻘﺎ ﻓﻲ ﺳﺟﻝ ﻣﻥ ﺳﺟﻼﺗﻬﺎ‪.‬‬

‫‪ -‬ﺇﺟﺭﺍءﺍﺕ ‪Procedures‬‬

‫ﻣﻥ ﺍﻟﺗﻘﻧﻳﺎﺕ ﺍﻷﻛﺛﺭ ﺃﻫﻣﻳﺔ ﻓﻲ ﺗﺭﻛﻳﺑﺔ ﺍﻟﺑﺭﺍﻣﺞ ‪ structuration‬ﻫﻲ ﺍﻹﺟﺭﺍءﺍﺕ‪ .‬ﻋﺎﻣﺔ ﻧﺩﺍء ﺇﺟﺭﺍء ﻣﺎ‬
‫ﻳﺅﺩﻱ ﺇﻟﻰ ﺗﻐﻳﻳﺭ ﻣﺳﺎﺭ ﺃﻭ ﺗﺳﻠﺳﻝ ﺍﻟﺗﻌﻠﻳﻣﺎﺕ‪ .‬ﻟﻛﻥ ﻋﻠﻰ ﺍﻟﻌﻛﺱ ﻣﻥ ﺗﻌﻠﻳﻣﺎﺕ ﺍﻟﻘﻔﺯ ﻓﺈﻥ ﺑﻌﺩ ﺗﻧﻔﻳﺫ ﺍﻹﺟﺭﺍء‬
‫ﺗﺳﻠﺳﻝ ﺍﻟﺗﻌﻠﻳﻣﺎﺕ ﻳﻌﻭﺩ ﺇﻟﻰ ﺍﻟﻣﻭﺿﻊ ﺍﻟﺫﻱ ﻳﻠﻲ ﻧﺩﺍء ﺍﻹﺟﺭﺍء ﻣﺑﺎﺷﺭﺓ‪ .‬ﺗﺳﺗﻭﺟﺏ ﻣﻥ ﺟﻬﺔ ﻫﺫﻩ ﺍﻟﻌﻣﻠﻳﺔ‬
‫ﺃﺻﻼ ﺗﺧﺯﻳﻥ ﻋﻧﻭﺍﻥ ﺍﻟﺗﻌﻠﻳﻣﺔ ﺍﻟﺗﻲ ﺗﻠﻲ ﺗﻌﻠﻳﻣﺔ ﺍﻹﺟﺭﺍء‪ ,‬ﻭ ﻭﺟﻭﺩ ﺗﻌﻠﻳﻣﺔ ﻗﻔﺯ ﺇﻟﻰ ﺍﻟﻌﻧﻭﺍﻥ ﺍﻟﺧﺯﻥ ﺳﺎﺑﻘﺎ‪.‬‬
‫ﺍﻟﻣﺳﺋﻭﻝ ﻋﻥ ﺗﻭﻓﻳﺭ ﻫﺫﻩ ﺍﻵﻟﻳﺎﺕ ﻛﺎﻥ ﺍﻟﻣﺗﺭﺟﻡ‪ .‬ﻭﺍﺿﺢ ﺃﻥ ﻫﺫﻩ ﺍﻟﻣﻬﻣﺔ ﻛﺎﻧﺕ ﻣﻛﻠﻔﺔ ﺑﺎﻟﻧﺳﺑﺔ ﻟﻣﺑﺭﻣﺞ‬
‫ﺍﻟﻣﺗﺭﺟﻡ‪ .‬ﻣﻊ ﺍﻟﺗﻁﻭﺭ ﺍﻟﺗﻛﻧﻭﻟﻭﺟﻲ ﺃﺩﻣﺟﺕ ﻫﺫﻩ ﺍﻵﻟﻳﺎﺕ ﺩﺍﺧﻝ ﺍﻟﻣﻌﺎﻟﺞ ﺑﺈﺿﺎﻓﺔ ﺗﻌﻠﻳﻣﺎﺕ ﺧﺎﺻﺔ‬
‫ﺑﺎﻹﺟﺭﺍءﺍﺕ ﻭ ﺁﻟﻳﺎﺕ ﺗﺧﺯﻳﻥ ﻋﻧﺎﻭﻳﻥ ﺍﻟﺭﺟﻭﻉ ﻣﻥ ﺍﻹﺟﺭﺍء‪.‬‬

You might also like