BELAJAR CYBER

Belajar Cyber

Portal Edukasi Keamanan Siber
-
-

lingua programasaun

Iha siénsia da komputasaun, low-level programming language hanesan lingua programasaun ne'ebé fornese oituan ou laiha abstraksaun husi komputador nia instrusaun.
Em geralmente ne'e refere ba kodiku makina (Machine code) ou lingua assembly (assembly language). Lia fuan "low" refere ba ki'ik, ou nia abstrakasaun oituan entre lingua ho machine language (lingua makina), tanba ne'e, low-level language, dala ruma deskreve hanesan (besik ba hardware).
Low-level language bele converte ba kodiku makina, no ita la presiza atu compile fali. Tanba kodiku sira ne'ebé ita hakerek no ita bele hala'o direita iha processor. Program ne'ebé hakerek iha low-level language, bainhira atu hala'o lais de'it. No presija de'it memória oituan atu hala'o, kompara ho program ne'ebé nia resultadu hanesan, ne'ebé halo iha high-level language, todan lahalimar. Low-level language simples, maibé difisil atu usa ba umanu nia nesessáriu loron-loron. Tanba buat barak kona-ba teknikal nian ne'ebé detail tebes, ita tenke memoriza.
Husi komparasaun ne'e, high-level programming language isola atu eksekuta semantic husi arsitektur komputador nian, husi espesifikasaun program, ne'ebé simplifika iha dezenvolvimento nian.
Low-level programming languages dala ruma fahe ba iha category rua mak: gerasaun primeiru no segundu gerasaun.
Machine code (Kódiku Makina)
Kódiku makina (Machine code) hanesan lingua microprocessor de'it, ne'ebé bele prosesu direita, no la presija transformasaun. Ohin loron, programadores sira ladun hakerek direita iha kódiku makina (machine code), tanba requer atensaun ba buat barak ne'ebé detail, enquantu iha high-level language sei halo ho automátika, no mos requer memória ou hare tuir kódiku sira iha kada instrusaun ne'ebé usa. Ho razaun ida ne'e, gerasaun segundu ba lingua programasaun (second generation programming languages) fornese leve abstraksaun ida iha makina kode nia leten.
Ezemplu: Funsaun iha kódiku 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 la konsidera nia hanesan lingua programasaun tamba nia laiha semantic no laiha espesifikasaun, so que nia hamosu de'it kódiku op hodi ita bele le'e.
Ezemplu: Kalkuladora numeru Fibonacci balun hanesan tuir mai ne'e, maibé 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'ebé suporta high-level language iha tinan 1960, hanesan mata dalan ba PL/S, BLISS, BCPL, no extendido do ALGOL ba Burroughs large systems ne'ebé uza ba low-level programming. FORTH mos iha aplikasaun nudar system lingua. Oinsá mos, lingua ne'ebé sai hanesan pre-eminent iha system programasaun mak C ne'e ona.
C konsidera hanesan lingua programasaun terceiru gerasaun, tanba halo nia estrutura no nia abstracts husi kódiku makina (historikamente, laiha lingua programasaun segundu gerasaun, maibé partikularmente nia apropria ba low-level programming).
Oinsá mos, ohin loron programador komputador bele mos konsidera C hanesan low-level, tanba nia kekurangan ne'e presiza runtime-system barak (laiha garbage collection no seluk tan). Basicamente suporta de'it ba operasaun skalar, no fornese addressing memória direita. C iha abilidade atu abstract husi leve makina, katak kódiku balu bele compile ba plataforma hardware ne'ebé diferente. Oinsá mos, fine-gained control iha leve sistema sei iha posibilidade atu fornece ne'e ba iha targetu plataforma ne'ebé di'ak ba certain broadly-defined features iha fatin. Hanesan modelu flat memory, no memória ne'e fahe ba bytes. Programasaun C bele fornese montante husi tweaking ne'ebé di'ak, dala barak implementa iha Conditional compilation, ba targetu plataforma ne'ebé diferente. Prosesu adaptasaun programa sistema ba plataforma ne'ebé diferente, ne'ebé konhesidu 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'ebé nia estrutura 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) (maibé dala barak sei one-to-one, karik la uja ho macros) representasaun husi kódiku makina, nudar suportasaun konseptu, hanesan konstante no (limitadu) ekspresaun, dala ruma ba variável sira, procedures, no estrutura dadus. Machine code, nudar inerentemente iha level a'as liu que microcode ou micro-operations, ne'ebé uza interna iha processor barak.