Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

‫ﻣﻘدﻣﺔ ﻋن ﻟﻐﺎت اﻟﺑرﻣﺟﺔ‬

‫‪ ‬ﻣﻔﺎھﯾم ﻋﺎﻣﺔ‬
‫‪ ‬أﻗﺳﺎم ﻟﻐﺎت اﻟﺑرﻣﺟﺔ‬
‫‪ ‬ﻣﻔﺎھﯾم ﻓﻲ اﻟﺑرﻣﺟﺔ‬
‫‪ ‬ﻣراﺣل ﺗرﺟﻣﺔ اﻟﺑرﻧﺎﻣﺞ‬
‫‪ ‬أﻧواع اﻷﺧطﺎء ﻓﻲ اﻟﺑرﻣﺟﺔ‬

‫‪2‬‬
‫ﻣﻔﺎھﯾم ﻋﺎﻣﺔ‬

‫‪ ‬اﻟﺑرﻧﺎﻣﺞ‪ :‬ھو ﻣﺟﻣوﻋﺔ ﻣن اﻻواﻣر ﻣﻛﺗوﺑﺔ ﺑﻠﻐﺔ ﺑرﻣﺟﺔ ﻣﻌﯾﻧﺔ ﯾﻧﻔذھﺎ ﺟﮭﺎز اﻟﺣﺎﺳب اﻻﻟﻲ ﻟﻣﻌﺎﻟﺟﺔ اﻟﺑﯾﺎﻧﺎت أو ﺗﻧﻔﯾذ ﻋﻣﻠﯾﺎت‬
‫أو ﺣل ﻣﺷﻛﻠﺔ ﻣﻧطﻘﯾﺔ‪.‬‬
‫‪ ‬اﻟﺑرﻣﺟﺔ ‪ :‬ﻋﻣﻠﯾﺔ ﻛﺗﺎﺑﺔ ﺗﻌﻠﯾﻣﺎت وأواﻣر ﻟﺟﮭﺎز اﻟﺣﺎﺳوب أو أي ﺟﮭﺎز آﺧر‪ ،‬ﻟﺗوﺟﯾﮭﮫ وإﻋﻼﻣﮫ ﺑﻛﯾﻔﯾﺔ اﻟﺗﻌﺎﻣل ﻣﻊ اﻟﺑﯾﺎﻧﺎت‪ .‬أو‬
‫ﻧﺳﺗطﯾﻊ ﺗﻌرﯾﻔﮭﺎ ﺑﺄﻧﮭﺎ ﻣﺟﻣوﻋﮫ ﻣن اﻟﺗﻌﻠﯾﻣﺎت اﻟﺗﻲ ﯾﻛﺗﺑﮭﺎ اﻟﻣﺑرﻣﺞ ﺑﺈﺣدى ﻟﻐﺎت اﻟﺑرﻣﺟﺔ ﻷداء ﻋﻣل ﻣﻌﯾن او ﺣل ﻣﺷﻛﻠﮫ ﻣﻌﯾﻧﮫ‬
‫وﯾﻘوم اﻟﺣﺎﺳب ﺑﺗﻧﻔﯾذھﺎ‬
‫‪ ‬أﻗﺳﺎم ﻟﻐﺎت اﻟﺑرﻣﺟﺔ‪:‬‬
‫ھﻧﺎﻟك ﻧوﻋﺎن ﻣن ﻟﻐﺎت اﻟﺑرﻣﺟﺔ ھﻣﺎ ‪:‬‬
‫‪ -١‬ﻟﻐﺎت ﻣﻧﺧﻔﺿﺔ اﻟﻣﺳﺗوى )‪(low level languages‬‬
‫وھﻲ ﻟﻐﺎت ﻗرﯾﺑﺔ ﺟدا ﻣن ﻓﮭم اﻟﺣﺎﺳب اﻻﻟﻲ وﺗﺳﻣﻰ أﯾﺿﺎ ً اﻟﻠﻐﺎت اﻟﺑﺳﯾطﺔ‬
‫‪ - ٢‬ﻟﻐﺎت ﻋﺎﻟﯾﺔ اﻟﻣﺳﺗوى ) ‪( High level languages‬‬
‫اﻟﻠﻐﺎت اﻟﻌﺎﻟﯾﺔ اﻟﻣﺳﺗوى ھﻲ ﻟﻐﺎت اﻟﺗﻲ ﺗﻛون اواﻣرھﺎ ﻋﺑﺎرة ﻋن ﺟﻣل وﻛﻠﻣﺎت ﻣﻔﮭوﻣﺔ ﻟﻠﻣﺳﺗﺧدم ﻟذﻟك ﺗﻌﺗﺑر ﺳﮭﻠﺔ‬
‫اﻻﺳﺗﺧدام ﺑﺧﻼف اﻟﻠﻐﺎت اﻟﻣﻧﺧﻔﺿﺔ اﻟﻣﺳﺗوى ‪ ،‬وﺗﺳﻣﻰ اﯾﺿﺎ ﺑﺎﻟﻠﻐﺎت اﻟﻣﺗﻘدﻣﺔ ‪.‬‬

‫‪3‬‬
‫‪Low level languages‬‬
‫ﻟﻐﺎت ﻣﻧﺧﻔﺿﺔ اﻟﻣﺳﺗوى‬

‫‪ ‬ﺳﻣﯾت ﻛذﻟك ﻟﺑﻌدھﺎ ﻋن ﻟﻐﺔ اﻹﻧﺳﺎن وﺗﺗﻣﺛل ﻓﻲ‪:‬‬


‫‪ ‬ﻟﻐﺔ اﻻﻟﺔ )‪(machine language‬‬
‫اﻻواﻣر ﻓﻲ ﻟﻐﺔ اﻻﻟﮫ ﺗﻛﺗب ﻋﻠﻰ ﺷﻛل ﺳﻠﺳﻠﺔ ﻣن اﻻرﻗﺎم اﻟﺛﻧﺎﺋﯾﺔ " اﻟﺻﻔر واﻟواﺣد "ﺣﺗﻰ ﯾﻔﮭﻣﮭﺎ اﻟﺣﺎﺳب اﻻﻟﻲ ﻣﺑﺎﺷرة‬
‫اﻟﻌﻣﻠﯾﺎت اﻟﺗﻲ ﯾﻣﻛن ﺗﻧﻔﯾذھﺎ ﻓﻲ ﻟﻐﺔ اﻻﻟﮫ ھﻲ ﻋﻣﻠﯾﺎت ﺑﺳﯾطﺔ ﺟدا وﺗﺗﻌﺎﻣل ﻣﻊ ﻣﺎ ھو ﻣﺧزن ﻓﻲ اﻟذاﻛرة اﻟرﺋﯾﺳﯾﺔ ﻟﻠﺟﮭﺎز ‪.‬‬
‫‪ ‬ﻟﻐﺔ اﻟﺗﺟﻣﯾﻊ )‪(assembly language‬‬
‫ﻛﻣﺎ ﻗﻠﻧﺎ ﺳﺎﺑﻘﺎ اﻻواﻣر ﻓﻲ ﻟﻐﺔ اﻻﻟﮫ ﺗﻛﺗب ﻋﻠﻰ ﺷﻛل ﺳﻠﺳﻠﺔ ﻣن اﻟﺻﻔر واﻟواﺣد ﻣﻣﺎ ﯾﺟﻌل اﻟﺑرﻣﺟﺔ ﻓﻲ ھذه اﻟﻠﻐﺔ ﺻﻌﺑﺔ‬
‫وﺑطﯾﺋﺔ ﻟذﻟك ﺗم وﺿﻊ ﻟﻐﺔ أﺧرى ھﻲ ﻟﻐﺔ اﻟﺗﺟﻣﯾﻊ ﺣﯾث ﯾﺗم ﻛﺗﺎﺑﺔ اﻻواﻣر ﻋﻠﻰ ھﯾﺋﺔ اﺧﺗﺻﺎرات ﻣﻔﮭوﻣﺔ ﺑﺎﻟﻠﻐﺔ اﻻﻧﺟﻠﯾزﯾﺔ‬
‫ﯾﺳﮭل ﺗذﻛرھﺎ ‪.‬وﻟﻛن ﺟﮭﺎز اﻟﺣﺎﺳب اﻻﻟﻲ ﻻ ﯾﻔﮭم إﻻ اﻟﺻﻔر واﻟواﺣد ﻟذﻟك ﯾوﺟد ﻣﺗرﺟم “ اﻟﻣﺟﻣﻊ “ ﯾﺣول أواﻣر ﻟﻐﺔ اﻟﺗﺟﻣﯾﻊ‬
‫اﻟﻰ اﻟﺻﻔر واﻟواﺣد ﺣﺗﻰ ﯾﻔﮭﻣﮭﺎ اﻟﺟﮭﺎز وﯾﻧﻔذھﺎ ‪ .‬وﺗﺗﻌﺎﻣل اواﻣر ﻟﻐﺔ اﻟﺗﺟﻣﯾﻊ ﻣﻊ ﻣﻛوﻧﺎت ﺟﮭﺎز اﻟﺣﺎﺳب اﻟداﺧﻠﯾﺔ ﻣﺑﺎﺷرة‬
‫ﻟذﻟك ﺗﻌد ﻣن اﻟﻠﻐﺎت اﻟﺑﺳﯾطﺔ وﻣﺳﺗﺧدﻣﯾﮭﺎ ھم ﻏﺎﻟﺑﺎ ً ﻣﮭﻧدﺳﻲ اﻟﺣﺎﺳب اﻻﻟﻲ وھﻲ ﻣﻔﯾدة ﻋﻧد ﻛﺗﺎﺑﺔ ﺑرﻧﺎﻣﺞ اﻟﺗﺣﻛم ﺑﺎﻟﺟﮭﺎز‬
‫وﻣﻛوﻧﺎﺗﮫ ‪.‬‬

‫‪4‬‬
‫‪High level languages‬‬
‫ﻟﻐﺎت ﻋﺎﻟﯾﺔ اﻟﻣﺳﺗوى‬

‫‪ ‬اﻟﻠﻐﺎت اﻟﻌﺎﻟﯾﺔ اﻟﻣﺳﺗوى ھﻲ اﻟﻠﻐﺎت اﻟﺗﻲ ﺗﻛون اواﻣرھﺎ ﻋﺑﺎرة ﻋن ﺟﻣل وﻛﻠﻣﺎت ﻣﻔﮭوﻣﺔ ﻟﻠﻣﺳﺗﺧدم ﻟذﻟك ﺗﻌﺗﺑر ﺳﮭﻠﺔ اﻻﺳﺗﺧدام ﺑﺧﻼف‬
‫اﻟﻠﻐﺎت اﻟﻣﻧﺧﻔﺿﺔ اﻟﻣﺳﺗوى ‪ ،‬ﻛﻣﺎ اﻧﮫ ﯾﻣﻛن ﺗﻧﻔﯾذ ﻋﻣﻠﯾﺔ ﻣﻌﯾﻧﺔ ﺑﻛﺗﺎﺑﺔ ﺳطر واﺣد ﺑﻌﻛس اﻟﻠﻐﺎت اﻟﻣﻧﺧﻔﺿﺔ اﻟﻣﺳﺗوى اﻟﺗﻲ ﺗﺣﺗﺎج اﻟﻌدﯾد ﻣن‬
‫اﻟﺳطور ﻟﺗﻧﻔﯾذ ﻋﻣﻠﯾﺔ واﺣدة ‪.‬‬

‫‪ ‬ﻛﻣﺎ ﯾوﺟد اﻟﻛﺛﯾر ﻣن ﻟﻐﺎت اﻟﺑرﻣﺟﺔ اﻟﻌﺎﻟﯾﺔ اﻟﻣﺳﺗوى واﻟﺗﻲ ﺗﺳﺗﺧدم ﻟﺑرﻣﺟﺔ ﺗطﺑﯾﻘﺎت ﻓﻲ ﻣﺟﺎﻻت ﻣﺧﺗﻠﻔﺔ ‪.‬‬

‫‪ ‬وﺗﺳﻣﻰ اﻟﻠﻐﺎت اﻟﻌﺎﻟﯾﺔ اﻟﻣﺳﺗوى اﯾﺿﺎ ﺑﺎﻟﻠﻐﺎت اﻟﻣﺗﻘدﻣﺔ ‪ .‬وﺗﻧﻘﺳم إﻟﻰ‪:‬‬


‫‪ o‬ﻟﻐﺔ اﻟﺑرﻣﺟﺔ اﻻﺟراﺋﯾﺔ ‪:‬ھذه اﻟﻠﻐﺎت ﯾﺗم ﺗﺟﻣﯾﻊ اﻻواﻣر اﻟﺗﻲ ﺗﻧﻔذ ﻣﮭﻣﺔ واﺣدة ﺗﺣت اﺟراء واﺣد وﯾﻌطﻰ اﺳم ﻣﻌﯾن ﺛم ﻓﻲ ﻛل ﻣرة‬
‫ﻧرﯾد ﺗﻧﻔﯾذ ھذه اﻟﻣﮭﻣﺔ ﯾﺗم ﻣﻧﺎداة ھذا اﻻﺳم اﻟذي اﺧﺗرﻧﺎه ﺑدﻻً ﻣن ﻛﺗﺎﺑﺔ ﺟﻣﯾﻊ ھذه اﻻواﻣر ﻣرة ً اﺧرى ‪ .‬ﻣﯾزة ھذا اﻟﻘﺳم أن اﻟﺑراﻣﺞ‬
‫ﺗﻛون ﻗﺻﯾرة وﺳﮭﻠﺔ اﻟﻘراءة واﻟﻔﮭم ‪.‬‬
‫‪ ‬ﻣﺛﺎل‪:‬‬
‫ﻟﻐﺔ اﻟﺑﯾﺳك ‪:basic‬وھﻲ ﻣن اﺳﮭل اﻟﻠﻐﺎت ﻣن ﺣﯾث اﻟﺗﻌﻠم واﻻﺳﺗﺧدام وﺗم ﺗطوﯾرھﺎ ﻣن ﻗﺑل ﺷرﻛﺔ ﻣﺎﯾﻛرو ﺳوﻓت اﻟﻰ ﻟﻐﺔ‬
‫اﻟﻔﯾﺟوال ﺑﯾﺳك‪.‬‬
‫ﻟﻐﺔ اﻟﺳﻲ ‪ :C‬وﺗﺳﺗﺧدم ﻟﻛﺗﺎﺑﺔ ﺑرﻣﺟﯾﺎت ﻧظم اﻟﺗﺷﻐﯾل ﻛﻣﺎ ﺗﺳﺗﺧدم ﻟﻛﺗﺎﺑﺔ ﺗطﺑﯾﻘﺎت ﻣﺧﺗﻠﻔﺔ اﺧرى ‪.‬‬

‫‪5‬‬
‫‪High level languages‬‬
‫ﻟﻐﺎت ﻋﺎﻟﯾﺔ اﻟﻣﺳﺗوى‬

‫‪ o‬ﻟﻐﺔ اﻟﺑرﻣﺟﺔ ﺑﺎﻟﻛﺎﺋﻧﺎت‪ :‬وﺗﺳﻣﻰ اﯾﺿﺎ اﻟﺑرﻣﺟﺔ ﺑﺎﻟﻌﻧﺎﺻر ﻓﻲ ھذه اﻟﻠﻐﺎت ﯾﺗم ﺗﺟﻣﯾﻊ اﻟﺑﯾﺎﻧﺎت ﻣﻊ اﻻواﻣر اﻟﺧﺎﺻﺔ ﺑﮭﺎ ﺗﺣت ﻛﺎﺋن‬
‫واﺣد وﯾﻌطﻰ اﺳم ﻣﻌﯾن وﯾﻣﻛن اﺳﺗﺧداﻣﮫ ﻋدة ﻣرات داﺧل اﻟﺑرﻧﺎﻣﺞ‪.‬‬
‫‪ ‬ﻣﺛﺎل‪:‬‬
‫ﻟﻐﺔ اﻟﺳﻲ ﺑﻠس ﺑﻠس ‪ : C++‬ﺗُﻌ ّد ھذه اﻟﻠﻐﺔ ﻣن أﻛﺛر اﻟﻠﻐﺎت ﺷﯾوﻋﺎ ً واﺳﺗﺧداﻣﺎ ً ﻣن ﻗﺑل اﻟﻣﺑرﻣﺟﯾن‪ ،‬وھﻲ اﻟﻧﺳﺧﺔ اﻟﻣﺣدّﺛﺔ ﻣن‬
‫ﻟﻐﺔ ‪ ،C‬ﺣﯾث ﺗم اﺳﺗﺧداﻣﮭﺎ ﻓﻲ ﻛﺗﺎﺑﺔ أﻧظﻣﺔ اﻟﺗﺷﻐﯾل وﻛﺗﺎﺑﺔ ﺑراﻣﺞ اﻟﺗﺳﻠﯾﺔ ﻣﺛل اﻷﻟﻌﺎب‪،‬‬

‫ﻟﻐﺔ اﻟﺟﺎﻓﺎ ‪ Java‬وﻣن أھم ﻣﻣﯾّزات ھذه اﻟﻠﻐﺔ أﻧّﮭﺎ ‪ Object Oriented‬ﺑﻣﻌﻧﻰ أﻧّﮭﺎ ﺗدﻋم إﻧﺷﺎء اﻟﻛﯾﺎﻧﺎت اﻟﺗﻲ ﻣن ﺷﺄﻧﮭﺎ أن‬
‫ﺗﺟﻌل ﻋﻣﻠﯾّﺔ اﻟﺑرﻣﺟﺔ أﻛﺛر ﺳﮭوﻟﺔ وأﻣﺎﻧﺎً‪ ،‬ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ ذﻟك ﻓﮭﻲ ﺗدﻋم اﻟرﺳوﻣﺎت واﻷﺻوات ﻓﻲ اﻟﺗطﺑﯾﻘﺎت اﻟﺗﻲ ﯾﺗم إﻧﺷﺎؤھﺎ‪،‬‬
‫أ ّﻣﺎ ﻛﻠﻣﺔ ﺟﺎﻓﺎ ﺑﺎﻷﺻل ﻓﺗﻌﻧﻲ اﻟﻘﮭوة‪.‬‬

‫‪ ‬ﻣﻼﺣظﺔ‪:‬‬

‫ﺟﻣﯾﻊ ﻟﻐﺎت ﻋﺎﻟﯾﺔ اﻟﻣﺳﺗوى ﯾﺟب ﺗﺣوﯾﻠﮭﺎ اﻟﻰ ﻟﻐﺔ اﻵﻟﺔ ﺣﺗﻰ ﯾﻔﮭﻣﮭﺎ اﻟﺣﺎﺳب اﻻﻟﻲ ‪ ،‬ﻟذﻟك ﻓﺈن ﻟﻛل ﻟﻐﺔ ﻣﺗرﺟم ﺧﺎص ﯾﻘوم ﺑﺗﺣوﯾﻠﮭﺎ‬
‫اﻟﻰ ﻟﻐﺔ اﻵﻟﺔ ‪.‬‬

‫‪6‬‬
‫‪High level languages‬‬
‫ﻟﻐﺎت ﻋﺎﻟﯾﺔ اﻟﻣﺳﺗوى‬

‫‪ ‬ﻣن ﻣﻣﯾزات ھذا اﻟﻣﺳﺗوى ‪:‬‬


‫‪ .١‬ﺳﻣﯾت ﻟﻐﺎت اﻟﺑرﻣﺟﺔ ﻋﺎﻟﯾﺔ اﻟﻣﺳﺗوى ﺑﮭذا اﻻﺳم ﻷﻧﮭﺎ ﻗرﯾﺑﺔ ﺟدا ً ﻣن ﻟﻐﺔ اﻹﻧﺳﺎن‪.‬‬
‫‪ .٢‬ﺳﮭوﻟﺔ اﻟﻛﺗﺎﺑﺔ )إﻋداد اﻟﺑراﻣﺞ( وﺳﮭوﻟﺔ ﻣراﺟﻌﺗﮭﺎ وﻓﮭﻣﮭﺎ وﺗﻌدﯾﻠﮭﺎ إذا ﻟزم اﻷﻣر‪.‬‬
‫‪ .٣‬ﻻ ﺗﺣﺗﺎج اﻟﻛﺗﺎﺑﺔ واﻟﺗﻌﺎﻣل ﻣﻌﮭﺎ إﻟﻰ وﺟود ﻣﻌﻠوﻣﺎت ﻣوﺳﻌﺔ ﻟدى اﻟﻣﺑرﻣﺞ‪.‬‬
‫‪ .٤‬ﻛل ﻟﻐﺔ ﻣﺗﺧﺻﺻﺔ ﺑﻣﺟﺎل ﻣﻌﯾن ﻓﻠﻐﺔ ﺑﯾﺳك ﺗﺳﺗﺧدم ﻓﻲ اﻟﻣﺟﺎﻻت اﻟﺗﻌﻠﯾﻣﯾﺔ و ﻛوﺑل ﻓﻲ اﻟﻣﺟﺎﻻت اﻟﺗﺟﺎرﯾﺔ‪ ،‬وﺑﺎﺳﻛﺎل‬
‫وﺳﻲ ﻓﻲ اﻟﻣﺟﺎﻻت اﻟﻌﻠﻣﯾﺔ‪.‬‬
‫‪ .٥‬إﻣﻛﺎﻧﯾﺔ اﻟﺗوﺛﯾﻖ وذﻟك ﻻﻣﺗﻼﻛﮭﺎ ﺗﻌﻠﯾﻣﺎت ﺗزود اﻟﺑرﻧﺎﻣﺞ ﺑﺎﻟﻣﻼﺣظﺎت اﻟﻼزﻣﺔ ﻟﻣﺗﺎﺑﻌﺔ اﻟﺑرﻧﺎﻣﺞ‪.‬‬
‫‪ .٦‬إﻣﻛﺎﻧﯾﺔ ھﯾﻛﻠﺔ اﻟﺑرﻧﺎﻣﺞ وﺗﻘﺳﯾﻣﮫ إﻟﻰ أﺟزاء ﻣﺗراﺑطﺔ ﺑﺣﯾث ﯾﺳﺗﺧدم اﻟﺟزء اﻟﻣطﻠوب ﻋﻧد اﻟﺣﺎﺟﺔ‪.‬‬

‫‪7‬‬
‫ﻣﻔﺎھﯾم ﻓﻲ اﻟﺑرﻣﺟﺔ‬

‫‪ ‬اﻟﺑرﻧﺎﻣﺞ اﻟﻣﺻدري ‪ :Source Program‬ھو اﻟﺑرﻧﺎﻣﺞ اﻟﻣﻛﺗوب ﻣن ﻗﺑل اﻟﻣﺑرﻣﺞ ﺑﺄي ﻟﻐﺔ ﺑرﻣﺟﺔ ﻋدا ﻟﻐﺔ اﻵﻟﺔ‪.‬‬
‫‪ ‬اﻟﺑرﻧﺎﻣﺞ اﻟﮭدﻓﻲ‪ /‬اﻟﺗﻧﻔﯾذي ‪ :Target Program‬ھو اﻟﺑرﻧﺎﻣﺞ اﻟﻣﻛﺗوب ﺑﻠﻐﺔ اﻵﻟﺔ )ﻟﻐﺔ اﻟﺻﻔر واﻟواﺣد(‪.‬‬
‫‪ ‬اﻟﻣﺗﻐﯾرات‪ :‬ﺟﻣﻊ ﻣﺗﻐﯾر وﻣﺎ ھو إﻻ ﻣﻛﺎن ﻣﺣدد ﻓﻲ اﻟذاﻛرة ﯾﻌطﯾﮫ اﻟﻣﺑرﻣﺞ اﺳﻣﺎ ً وﯾﺣدد ﻟﮫ ﻧوﻋﺎ ً ﺛم ﯾﺳﺗﺧدﻣﮫ ﻟﺣﻔظ وﺗﺧزﯾن‬
‫ﻗﯾﻣﺔ ﻣﻌﯾﻧﺔ ﻗﺎﺑﻠﺔ ﻟﻠﺗﻐﯾر ﺑﻌد إﺟراء اﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ وﺗﻧﻔﯾذ اﻷواﻣر اﻟﺑرﻣﺟﯾﺔ ‪.‬‬
‫‪ ‬اﻟﺛواﺑت‪ :‬ﺟﻣﻊ ﺛﺎﺑت وھو ﻋﺑﺎرة ﻋن ﻣﺗﻐﯾر ﺛﺎﺑت ﯾﺧﺗﻠف ﻋن اﻟﻣﺗﻐﯾر اﻟﺳﺎﺑﻖ ﻓﻲ ﻛون ﻗﯾﻣﺗﮫ ﺗﺑﻘﻰ ﻛﻣﺎ ھﻲ ﻻ ﺗﺗﻐﯾر طﯾﻠﺔ‬
‫اﻟﺑرﻧﺎﻣﺞ وﻻ ﺗﺗﺄﺛر ﺑﺎﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ وﻻ ﻏﯾرھﺎ ﻣن اﻷواﻣر‪.‬‬
‫‪ ‬اﻟﻣدﺧﻼت‪ :‬ھﻲ اﻟﺑﯾﺎﻧﺎت واﻟﻣﻌﻠوﻣﺎت اﻟﺗﻲ ﻧﺣﺗﺎج اﺳﺗﺧداﻣﮭﺎ وﺗﻛون ﻣدﺧﻠﺔ ﻣن ﻗﺑل اﻟﻣﺳﺗﺧدم أو ﻣن ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت أو ﻣن‬
‫ﻣﻠﻔﺎت ﺧﺎرج اﻟﺑرﻧﺎﻣﺞ‪.‬‬
‫‪ ‬اﻟﻣﺧرﺟﺎت‪ :‬ھو ﻋﺑﺎرة ﻋن اﻟﻧواﺗﺞ اﻟﺗﻲ ﺳﺗظﮭر ﻋﻠﻰ اﻟﺷﺎﺷﺔ و ﻛل ﻣﺎ ﯾﻣﻛن اﻋﺗﺑﺎره ﻧﺗﯾﺟﺔ ﻟﻠﺑرﻧﺎﻣﺞ ‪.‬‬
‫‪ ‬اﻟﻣﺑرﻣﺞ ‪ :‬ھو اﻟﺷﺧص اﻟذي ﯾﻘوم ﺑﺻﻧﺎﻋﺔ اﻟﺑرﻧﺎﻣﺞ وﻛﺗﺎﺑﺔ اﻟﺗﻌﻠﯾﻣﺎت اﻷواﻣر ﺑﺎﺳﺗﺧدام ﻟﻐﺎت اﻟﺑرﻣﺟﺔ‪.‬‬
‫‪ 8 ‬اﻟﻣﺳﺗﺧدم ‪ :‬ھو اﻟﺷﺧص اﻟذي ﯾﺳﺗﺧدم اﻟﺑرﻧﺎﻣﺞ وﯾﺳﺗﻔﯾد ﻣن اﻟﻛود اﻟﻣﻧﺷﺄ ﻣن ﻗﺑل اﻟﻣﺑرﻣﺞ‪.‬‬
‫اﻟﺗرﺟﻣﺔ‬

‫‪ ‬إن اﻟﺑرﻧﺎﻣﺞ اﻟذي ﯾﻛﺗﺑﮫ اﻟﻣﺑرﻣﺞ ﯾﺳﻣﻰ اﻟﺑرﻧﺎﻣﺞ اﻟﻣﺻدري ‪Source program‬و ﺣﺗﻰ ﯾﺻﺑﺢ ﻗﺎﺑل ﻟﻠﺗﻧﻔﯾذ ﻻ ﺑد ﻣن‬
‫ﺗﺣوﯾﻠﮫ إﻟﻰ ﻟﻐﺔ اﻵﻟﺔ‪.‬‬
‫‪ ‬ﺗﺳﻣﻰ ﻋﻣﻠﯾﺔ اﻟﺗﺣوﯾل ﻣن اﻟﺑرﻧﺎﻣﺞ اﻟﻣﺻدري إﻟﻰ ﺑرﻧﺎﻣﺞ ﺗﻧﻔﯾذي) اﻟﮭدف( ﻋن طرﯾﻖ اﻟﻣﺗرﺟﻣﺎت ﺑﺎﻟﺗرﺟﻣﺔ‪.‬‬
‫‪ ‬ھﻧﺎك ﻣﺟﻣوﻋﺔ ﻣن اﻟﻣﺗرﺟﻣﺎت أھﻣﮭﺎ‪:‬‬
‫اﻟﻣﻔﺳر‬ ‫‪.١‬‬
‫اﻟﻣﺗرﺟم اﻟﻌﺎﻟﻲ )‪.(compiler‬‬ ‫‪.٢‬‬
‫اﻟﻣﺟﻣﻊ )‪.(Assembler‬‬ ‫‪.٣‬‬

‫‪9‬‬
‫ﻣراﺣل ﺗرﺟﻣﺔ اﻟﺑرﻧﺎﻣﺞ‬

‫اﻟﻣﻔﺳر‪:‬‬ ‫‪.١‬‬
‫‪ ‬وھو ﻋﺑﺎرة ﻋن ﺑرﻧﺎﻣﺞ ﯾﻌﻣل ﻋﻠﻰ ﺗرﺟﻣﺔ اﻟﺑرﻧﺎﻣﺞ اﻟﻣﺻدري ﺟﻣﻠﺔ ﺟﻣﻠﺔ ﺣﯾث ﺗﻘوم ﺑﺗﺣوﯾل ﻛل ﺟﻣﻠﺔ إﻟﻰ ﺟﻣﻠﺔ أو أﻛﺛر‬
‫ﻗﺎﺑﻠﺔ ﻟﻠﺗﻧﻔﯾذ وﯾﻧﻔذھﺎ ﺛم ﯾﻧﺗﻘل ﻟﺗرﺟﻣﺔ اﻟﺟﻣﻠﺔ اﻟﺗﺎﻟﯾﺔ‪.‬‬
‫‪ ‬ﺑﺷﻛل ﻋﺎم إن اﻟﻣﻔﺳر ﯾﻘوم ﺑﺗﺣﻘﯾﻖ اﻟوظﺎﺋف اﻟﺗﺎﻟﯾﺔ‪:‬‬
‫‪ o‬ﺗﺣﻠﯾل ﺟﻣﻠﺔ اﻟﺑرﻧﺎﻣﺞ اﻟﻣﺻدري‪.‬‬
‫‪ o‬ﻓﺣص ﺟﻣﻠﺔ اﻟﺑرﻧﺎﻣﺞ اﻟﻣﺻدري واﻛﺗﺷﺎف اﻷﺧطﺎء اﻹﻣﻼﺋﯾﺔ واﻟﻘواﻋدﯾﺔ و ﺗﺣدﯾدھﺎ‪.‬‬
‫‪ o‬وﻓﻲ ﺣﺎﻟﺔ اﻟﺧﻠو ﻣن اﻷﺧطﺎء ﻓﺈن اﻟﻣﻔﺳر ﯾﻌﻣل ﻋﻠﻰ ﺗوﻟﯾد ﺷﻔرة ﺛﻧﺎﺋﯾﺔ ﺛم ﯾﻘوم ﺑﺗﻧﻔﯾذھﺎ‪.‬‬

‫‪10‬‬
‫ﻣراﺣل ﺗرﺟﻣﺔ اﻟﺑرﻧﺎﻣﺞ‬

‫اﻟﻣﺗرﺟم اﻟﻌﺎﻟﻲ )‪(compiler‬‬ ‫‪.٢‬‬


‫‪ ‬ھو ﺑرﻧﺎﻣﺞ ﯾﻘوم ﺑﺗﺣوﯾل اﻟﺑراﻣﺞ اﻟﻣﻛﺗوﺑﺔ ﺑﻠﻐﺎت اﻟﺑرﻣﺟﺔ ﻋﺎﻟﯾﺔ اﻟﻣﺳﺗوى إﻟﻰ ﺑرﻧﺎﻣﺞ اﻟﮭدف وﺗﺗم ﻋﻣﻠﯾﺔ اﻟﺗرﺟﻣﺔ ھذه‬
‫ﻟﻠﺑرﻧﺎﻣﺞ ﻛﺎﻣﻼ دﻓﻌﺔ واﺣدة‪.‬‬
‫‪ ‬ﺗﺗم ﻋﻣﻠﯾﺔ اﻟﺗرﺟﻣﺔ ﻋﻠﻰ ﻣراﺣل‪:‬‬
‫‪ .١‬ﻣرﺣﻠﺔ اﻟﺗﺣﻠﯾل اﻟﻣﻌﺟﻣﻲ ‪:Lexical analysis‬‬
‫ﻓﻲ ھذه اﻟﻣرﺣﻠﺔ ﯾﺗم ﻣطﺎﺑﻘﺔ ﻣﻔردات ﺑرﻧﺎﻣﺞ اﻟﻣﺻدر واﻟﻌﻼﻗﺎت واﻷﺳﻣﺎء ﻣﻊ ﺗﻠك اﻟﻣﺳﻣوح ﺑﮭﺎ ﻓﻲ اﻟﻠﻐﺔ واﻛﺗﺷﺎف‬
‫أي أﺧطﺎء ﻓﯾﮭﺎ‪.‬‬
‫‪ .٢‬ﻣرﺣﻠﺔ اﻟﺗﺣﻠﯾل اﻟﻠﻐوي واﻟﻧﺣوي ‪:Syntax analysis‬‬
‫ﻓﻲ ھذه اﻟﻣرﺣﻠﺔ ﺗﺟري ﻋﻣﻠﯾﺔ ﻣطﺎﺑﻘﺔ ﺗﻌﻠﯾﻣﺎت اﻟﺑرﻧﺎﻣﺞ اﻟﻣﺻدري ﻣﻊ اﻟﻘواﻋد اﻟﻠﻐوﯾﺔ اﻟﻣﺳﺗﺧدﻣﺔ‪ ،‬واﻛﺗﺷﺎف أي‬
‫أﺧطﺎء ﻓﯾﮭﺎ‪ ،‬ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ ﻋﻣﻠﯾﺔ ﺗﺣوﯾل اﻟﺑرﻧﺎﻣﺞ اﻟﻣﺻدري إﻟﻰ ﺗﻌﻠﯾﻣﺎت وأواﻣر رﻣزﯾﺔ ﺑﻠﻐﺔ اﻟﺗﺟﻣﯾﻊ‪.‬‬
‫‪ .٣‬ﻣرﺣﻠﺔ ﺗرﺟﻣﺔ اﻟﺑرﻧﺎﻣﺞ إﻟﻰ ﻟﻐﺔ اﻵﻟﺔ‪:‬‬
‫ﻓﻲ ھذه اﻟﻣرﺣﻠﺔ ﻧﺣﺻل ﻋﻠﻰ اﻟﺑرﻧﺎﻣﺞ اﻟﮭدف واﻟذي ﺑﻣوﺟﺑﮫ ﯾﻣﻛن اﻟﺑدء ﻓﻲ ﻋﻣﻠﯾﺔ اﻟﺗﻧﻔﯾذ‪.‬‬
‫‪11‬‬
‫ﻣراﺣل ﺗرﺟﻣﺔ اﻟﺑرﻧﺎﻣﺞ‬

‫‪ .٣‬اﻟﻣﺟﻣﻊ )‪.(Assembler‬‬
‫‪ ‬ﯾﻌﻣل ﺑﻧﻔس اﻟطرﯾﻘﺔ اﻟﺗﻲ ﯾﻌﻣل ﺑﮭﺎ اﻟﻣﺗرﺟم اﻟﻌﺎﻟﻲ إﻻّ أﻧﮫ ﯾﺧﺻص ﻟﺗرﺟﻣﺔ اﻟﺑراﻣﺞ اﻟﻣﻛﺗوﺑﺔ ﺑﻠﻐﺔ ﺑرﻣﺟﺔ ﻣﺗدﻧﯾﺔ‬
‫اﻟﻣﺳﺗوى ﻛﻠﻐﺔ اﻟﺗﺟﻣﯾﻊ )‪(Assembly language‬‬

‫‪12‬‬
‫ﻣراﺣل ﺗرﺟﻣﺔ اﻟﺑرﻧﺎﻣﺞ‬

‫اﻟﻤﺘﺮﺟﻢ‬
‫اﻟﻤﻠﻒ اﻟﻤﺼﺪر‬ ‫‪Complier‬‬ ‫اﻟﻤﻠﻒ اﻟﺘﻨﻔﯿﺬي‬
‫‪program1.cpp‬‬ ‫‪program1.exe‬‬

‫‪13‬‬
‫ﻣراﺣل ﺗرﺟﻣﺔ اﻟﺑرﻧﺎﻣﺞ‬

‫ﻣﻠﻔﺎت اﻟﺮأس اﻟﺨﺎﺻﺔ‬


‫ﻣﻠﻔﺎت ﻣﺼﺪر أﺧﺮى‬
‫ﺑﺎﻟﻤﺒﺮﻣﺞ ﻣﺜﻞ‬ ‫ﻛﺎﺋﻨﺎت وإﺟﺮاءات ﻣﻜﺘﺒﺔ‬
‫‪*.cpp‬‬
‫”‪“myheader.h‬‬ ‫اﻟﻨﻈﺎم‬

‫اﻟﻤﻌﺎﻟﺞ اﻟﻤﺒﺪﺋﻲ‬ ‫اﻟﻤﺘﺮﺟﻢ‬ ‫اﻟﺮاﺑﻂ‬


‫اﻟﻤﻠﻒ اﻟﻤﺼﺪر‬
‫اﻟﻤﻠﻒ اﻟﻤﺼﺪر‬ ‫‪Preprocessor‬‬ ‫اﻟﻤﻌﺎﻟﺞ ﻧﺼﯿﺎ‬ ‫‪Complier‬‬ ‫اﻟﻤﻠﻒ اﻟﻮﺳﯿﻂ‬ ‫‪Linker‬‬ ‫اﻟﻤﻠﻒ اﻟﺘﻨﻔﯿﺬي‬
‫‪program1.cpp‬‬ ‫‪program1.obj‬‬ ‫‪program1.exe‬‬
‫‪program1.cpp‬‬

‫ﻣﻠﻔﺎت اﻟﺮأس اﻟﺨﺎﺻﺔ‬ ‫ﻛﺎﺋﻨﺎت وإﺟﺮاءات ﻣﻜﺘﺒﺔ‬


‫ﺑﺎﻟﻨﻈﺎم ﻣﺜﻞ‬ ‫اﻟﻤﺒﺮﻣﺞ اﻟﺨﺎﺻﺔ‬
‫>‪<iostream‬‬

‫‪14‬‬
‫أﻧواع اﻷﺧطﺎء ﻓﻲ اﻟﺑرﻣﺟﺔ‬

‫‪ ‬ھﻧﺎك ﻧوﻋﯾن ﻣن اﻷﺧطﺎء اﻟﺗﻲ ﻗد ﺗﻛون ﻣوﺟودة ﻓﻲ اﻟﺑرﻧﺎﻣﺞ اﻟﻣﺻدري وھﻲ ‪:‬‬
‫اﻷﺧطﺎء اﻟﺗﻲ ﯾﻣﻛن ﻟﻠﺣﺎﺳوب اﻛﺗﺷﺎﻓﮭﺎ وﻣن ﺑﯾﻧﮭﺎ‪:‬‬ ‫‪.١‬‬
‫‪ ‬اﻷﺧطﺎء اﻹﻣﻼﺋﯾﺔ‪.‬‬
‫‪ ‬اﻷﺧطﺎء اﻟﻧﺣوﯾﺔ واﻟﻘواﻋد وذﻟك ﻋﻧدﻣﺎ ﯾﺧرج اﻟﻣﺑرﻣﺞ ﻋن اﻟﻘواﻋد اﻟﻣﺗﺑﻌﺔ ﻓﻲ ﺻﯾﺎﻏﺔ وﺗرﻛﯾب اﻟﺟﻣﻠﺔ‪.‬‬
‫‪ ‬أﺧطﺎء ﺗﻧﻔﯾذﯾﺔ ﯾﻣﻛن اﻛﺗﺷﺎﻓﮭﺎ أﺛﻧﺎء اﻟﺗﻧﻔﯾذ ﻛﺎﻟﻘﺳﻣﺔ ﻋﻠﻰ ﺻﻔر أو وﺟود ﻧﻘص ﻓﻲ اﻟﻣدﺧﻼت‪.‬‬
‫اﻷﺧطﺎء اﻟﺗﻲ ﻻ ﯾﻛﺗﺷﻔﮭﺎ اﻟﺣﺎﺳوب ﻣﺛﺎل ﻋﻠﻰ ذﻟك ‪:‬‬ ‫‪.٢‬‬
‫‪ ‬إﻋطﺎء اﻟﺣﺎﺳوب ﺑﯾﺎﻧﺎت ﺧﺎطﺋﺔ‪.‬‬
‫‪ ‬اﻟﺧطﺄ ﻓﻲ اﻟﻌﻣﻠﯾﺎت اﻟﺣﺳﺎﺑﯾﺔ اﻟﻣراد ﺗﻧﻔﯾذھﺎ‪.‬‬
‫‪ ‬أﺧطﺎء اﻟﺗﺻﻣﯾم اﻟﺧﺎﺻﺔ ﺑﺈﻧﺗﺎج اﻟﺗﻘﺎرﯾر وذﻟك ﻷن اﻟﺣﺎﺳوب ٍﯾﺗﻘﯾد وﺑﺷﻛل ﺻﺎرم ﺑﺎﻟﻣواﺻﻔﺎت اﻟﺗﻲ ﯾزود ﺑﮭﺎ ﻋن‬
‫طرﯾﻖ اﻟﺑرﻧﺎﻣﺞ اﻟﻣﻛﺗوب ﻣن ﻗﺑل اﻟﻣﺑرﻣﺞ‪.‬‬

‫‪15‬‬

You might also like