Low-level programming language (leve-badak lingua programasaun)


    

I


Iha siensia da komputasaun, low-level programming language hanesan lingua programasaun ne'ebe fornese oituan ou laiha abstraksaun husi komputador nia instrusan.

em geralmente ne'e refere ba kodiku makina (Machine code) ou linggua assembly (assembly language). lia fuan "low" refere ba kiik, ou nia abstrakasaun oituan entre lingua ho machine language (lingua makina), tamba ne'e, low-level language, dalaruma deskreve hanesan (besik ba hardware) .


low-level language bele converte ba kodiku makina, no ita la presidia atu compile fali. tamba kodiku sira ne'ebe ita hakerek no ita bele halao direita iha processor. program ne'ebe hakerek iha low-level language, bainhira atu halao lais deit. no presija deit memoir oituan atu halao, kompara ho program ne'ebe nia nia resultadu hanesan, ne'ebe halo iha high-level language, todan lahalimar. low-level language simples, maibe difisil atu usa ba umanu nia necesariu loron-loron. tamba bust barak kona ba teknikal nian ne'ebe detail tebes, its tenke memoriza.

husi komparasaun ne'e, high-level programming language isola atu exekuta semantic husi arsitektur komputador nian, husi espesifikasaun program, ne'ebe simplifika iha dezenvolvimento nian. 


Low-level programming languages dalaruma fahe ba iha category rua make: gerasaun premeiro no segundo gerasaun.


Machine code (kodiku makina)


Kodiku makina (Machine code) hanesan lingua microprocessor deit, ne'ebe bele prosesu direita, no la presija transformasaun. Ohin loron, programadores sira ladun hakerek direita iha kodiku makina. (machine code), tamba requer atensaun ba buat barak ne'ebe detailhu, enquantu  iha high-level language sei alca ho automatika, no mos requer memoria ou hare tuir kodiku sira iha kada instrusaun ne'ebe usa. ho rasaun ida ne'e, gerasaun segundu ba lingua programasaun (second generation programming languages) fornese leve abstraksaun ida iha makina kode nia leten.  

Ezemplu: Funsaun iha kodiku makina 32-bit x86 atu kalkula  nth numeru Fibonacci: 


8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD98B
C84AEBF1 5BC3


Lingua assembly its la konsidera nia hanesan lingua programasaun tamba nia laiha semantic no laiha espesifikasaun, so que nia hamosu deit kodiku op hodi ita bele le'e.  

Ezemplu: Kalkulator numeru Fibonacci balun hanesan tuir mai ne'e, maibe iha x86 assembly usa syntax MASM:


fib:
    mov edx, [esp+8]
    cmp edx, 0
    ja @f
    mov eax, 0
    ret

    

    @@:
    cmp edx, 2
    ja @f
    mov eax, 1
    ret

    

    @@:
    push ebx
    mov ebx, 1
    mov ecx, 1

    

    @@:
        lea eax, [ebx+ecx]
        cmp edx, 3
        jbe @f
        mov ebx, ecx
        mov ecx, eax
        dec edx
    jmp @b

    

    @@:
    pop ebx
    ret

Low-level programming iha high-level languages nia laran

Experimenta ho hardware ne'ebe suporta high-level language iha tinan 1960, hanesan mata dalan ba PL/S, BLISS, BCPL, no extendido do ALGOL ba Burroughs large systems ne'ebe use ba low-level programming. FORTH mos iha applikasaun nudar system lingua, oinsamos, lingua maka say hanesan pre-eminent iha system programasaun maka C ne'e ona. 


C konsidera hanesan lingua programasaun terceiro gerasaun, desde halo nia strutura no nia abstracts husi kodiku makina (historikamente, laiha lingua programasaun segundo gerasaun, maibe partikularmente nia appropria ba low-level programming). 


Oinsamos, ohin loron programador komputador bele mos konsidera C hanesan low-level, tamba nia kekurangan ne'e presisa runtime-system barak, (laiha garbage collection no seluk tan (nst)). basicamente suporta deit ba operasaun skalar, no forneser addressing memory direita. C iha abilidade atu abstract husi leve makina, katak kodiku balu bele compile ba plataforma hardware ne'ebe diferente. oinsamos, fine-gained control iha leve systema sei iha posibilidade atu fornece ne'e ba iha targetu plataforma ne'ebe diak ba certain broadly-defined features iha fatin. hanesan modelu flat memory, no memory ne'e fahe ba bytes. Programasuan C bele fornece motante  husi tweaking ne'ebe diak, dalabarak implementa iha Conditional compilation, ba targetu plataforma ne'ebe diferente. Prosesu adaptasaun programa systema ba plataforma ne'ebe diferente,ne'ebe konyesidu hanesan porting.


Ezemplu: Funsaun atu kalkula nth numeru Fibonacci iha C


unsigned int fib(unsigned int n)
{
    if (n <= 0)
        return 0;
    else if (n <= 2)
        return 1;
    else {
        int a,b,c;
        a = 1;
        b = 1;
        while (1) {
            c = a + b;
            if (n <= 3) return c;
            a = b;
            b = c;
            n--;
        }
    }
}


Signifikadu Relativu


Termos high-level no low-level ne'e nia inerentemente (inherently) relativu, dekada hirak liu ba, lingua C, no lingua program seluk ne'ebe nia strutura atu hanesan, dala barak konsidera hanesan  "high-level". ohin loron programador barak mak refere ba C konsidera hanesan low-level.


Lingua assembly bele konsidera an hanesan level a'as (higher level) (maibe dala barak sei one-to-one, karik la uja ho macros) representasaun  husi kodiku makina, nudar suportasaun konseptu, havesan konstanta no (limitadu) ekspresaun, dalaruma ba variabel sira, procedures, no strutura dadus. Machine code,  nudar inerentemente iha leve a'as que microcode ou micro-operations, ne'ebe usa interna iha processor barak



BY:JF


Post a Comment

0 Comments