M3aarf Telegram

تعلم البرمجة

الفرق بين high-level language و low-level language مميزات وعيوب من حيث السرعة و الامكانيات

7 أبريل 2019

الفرق بين high-level language و low-level language مميزات وعيوب من حيث السرعة و الامكانيات

لغات البرمجة متقسمه مستويات

 

ياتاره انت بتستخدم أنهي مستوى فيهم

 

ويعني اى مستويات واى الفرق بينهم ما تيجي نشوف :D

 

=========================

 

سمعت اكيد عن لغات زي الجافا و ال php و البايثون و ال C++ وهكذا

 

طب سمعت عن حاجه اسمها

 

Assembly

 

C

 

BASIC

 

FORTRAN

 

دي برضوا لغات بس مش مشهورة اوي زي اللغات جافا وهكذا

 

طب يعني اى لغات عالية المستوى او high-level language

 

لغات اقرب ل لغة الانسان المشهورة " الانجليزية " يقدر الانسان يفهمها

 

بمجرد ما يقرئها مش هيفهمها جدا طبعا بس يقدر يفهم شوية عنها

 

وكل ما لغة البرمجة بتقرب للغة الانجليزي بيكون مستواها أعلى وأعلى

 

اما لغات الي يطلق عليها Low-level language

 

دي بتكون بعيده عن اللغة الانجليزي ويصعب على الانسان فهمها

 

مثال علشان تجمع رقمين بلغة زي ال PHP

 

$num1 = 3;

 

$num2 = 4;

 

echo "The result is". $num1+$num2;

 

وبس كده خلصنا العملية في 3 سطور

 

لكن علشان تجمع رقمين في لغة برمجة منخفضة المستوى زي Assembly

 

هنحتاج بالظبط 33 سطر كود :D

 

section .text

 

global _start ;must be declared for using gcc

 

 

_start: ;tell linker entry point

 

mov eax,'3'

 

sub eax, '0'

 

 

mov ebx, '4'

 

sub ebx, '0'

 

add eax, ebx

 

add eax, '0'

 

 

mov [sum], eax

 

mov ecx,msg

 

mov edx, len

 

mov ebx,1 ;file descriptor (stdout)

 

mov eax,4 ;system call number (sys_write)

 

int 0x80 ;call kernel

 

 

mov ecx,sum

 

mov edx, 1

 

mov ebx,1 ;file descriptor (stdout)

 

mov eax,4 ;system call number (sys_write)

 

int 0x80 ;call kernel

 

 

mov eax,1 ;system call number (sys_exit)

 

int 0x80 ;call kernel

 

 

section .data

 

msg db "The sum is:", 0xA,0xD

 

len equ $ - msg

 

segment .bss

 

sum resb 1

 

==============

 

متخيل الفرق :D واخواتنا الي درسوا Computer Science

 

عارفين صعوبة ال Assembly عامله ازاى ^^

 

اكيد طبعا فهمنا الفرق كويس جدا بينك انك تكون متعلم

 

high-level language || low-level language

 

ان ال high اقرب ل لغة الانسان ويقدر يفهمها بسهولة حتى لو مش بتاع برمجة

 

بس في مميزات لكل نوع فيهم

 

من حيث

 

1. السرعة

 

البرامج المكتوبة بلغات منخفضة المستوى هي أسرع من تلك المكتوبة بلغات متوسطة وعالية المستوى بسبب انها اقرب ل لغة الكمبيوتر

 

فالكمبيوتر مش هيحتاج عمليات كبيرة يعملها لانه في الاخر بيحول اى حرف

 

لمجموعه ارقام اسمها Binary 0100111011

 

لانه مش بيفهم غير الارقام دي عبارة عن شحنات كهربائية

 

0 مفيش شحنه

 

1 فيه شحنه

 

ف في النهاية كل ما بيكون اللغة بعيده عن لغة الالة بياخد وقت اكتر

 

فاللغات عالية المستوى بعيده جدا عن لغة الالة

 

ولغات منخفضة المستوى قريبه من لغة الالة فبتكون اسرع بكتير جدا

 

2. متطلبات الذاكرة

 

تعتبر اللغات منخفضة المستوى فعالة جدامن حيث الذاكرة. تستهلك ذاكرة أقل

 

3. سهولة الاستخدام

 

اللغات منخفضة المستوى صديقة للاجهزة ولكنها غير ذلك تماما للمبرمجين البشريين. كمبرمج بشري ، من الصعب التعامل مع الثنائيات و فن الإستذكار

 

لان تخيل واحد بيكتب 101100010 :D اكيد مش هيفهم

 

لكن الكمبيوتر هيحبك اوي لو كتبت له كده على طول

 

بدل ما تكتب له حروف هو مش فاهمها ولازم يحولها لمجموعه 01010

 

حولنا في المقولة دي نبسط بكل سهولة الفرق بين

 

high-level language || low-level language