Forskellen mellem Assembler og Compiler

Forskellen mellem Assembler og Compiler
Forskellen mellem Assembler og Compiler

Video: Forskellen mellem Assembler og Compiler

Video: Forskellen mellem Assembler og Compiler
Video: EVERYTHING NEW COMING TO EVERY DISNEY PARK: Zootopia, World of Frozen and More! 2024, Juli
Anonim

Assembler vs Compiler

Generelt er compiler et computerprogram, der læser et program skrevet på ét sprog, som kaldes kildesproget, og oversætter det til et andet sprog, som kaldes målsproget. Traditionelt var kildesprog et sprog på højt niveau, såsom C++, og målsprog var et sprog på lavt niveau, såsom Assembly-sprog. Der er dog compilere, der kan konvertere et kildeprogram skrevet i Assembly-sprog og konvertere det til maskinkode eller objektkode. Samlere er sådanne værktøjer. Så både assemblere og compilere producerer i sidste ende kode, der kan udføres direkte på en maskine.

Hvad er en compiler?

Compiler er et computerprogram, der læser et program skrevet på ét sprog, som kaldes kildesproget, og oversætter det til et andet sprog, som kaldes målsproget. Oftest er kildesproget et sprog på højt niveau, og målsproget er et sprog på lavt niveau. Så generelt kan kompilatorer ses som oversættere, der oversætter fra et sprog til et andet. Derudover udfører compilere nogle optimeringer til koden. En typisk compiler består af flere hovedkomponenter. Den første komponent er scanneren (også kendt som den leksikale analysator). Scanner læser programmet og konverterer det til en række tokens. Den anden komponent er parseren. Det konverterer strengen af tokens til et parsetræ (eller et abstrakt syntakstræ), som fanger programmets syntaktiske struktur. Næste komponent er de semantiske rutiner, der fortolker semantikken i den syntaktiske struktur. Kodeoptimeringerne og den endelige kodegenerering følger dette.

Hvad er en Assembler?

Assembler er en software eller et værktøj, der oversætter Assembly-sprog til maskinkode. Så en assembler er en type compiler, og kildekoden er skrevet på Assembly sprog. Assembly er et sprog, der kan læses af mennesker, men det har typisk et en-til-én-forhold til den tilsvarende maskinkode. Derfor siges en assembler at udføre isomorf (en til en mapping) oversættelse. Avancerede assemblere giver yderligere funktioner, der understøtter programudvikling og fejlfindingsprocesser. For eksempel giver den type assemblers, der kaldes macro assemblers, en makrofacilitet.

Hvad er forskellen mellem en Assembler og en Compiler?

Compiler er et computerprogram, der læser et program skrevet på ét sprog og oversætter det til et andet sprog, mens en assembler kan betragtes som en speciel type compiler, som kun oversætter Assembly sprog til maskinkode. Kompilere producerer norm alt maskinens eksekverbare kode direkte fra et højt niveau sprog, men assemblere producerer en objektkode, som muligvis skal linkes ved hjælp af linkerprogrammer for at kunne køre på en maskine. Fordi Assembly-sproget har en en-til-en-mapping med maskinkode, kan en assembler bruges til at producere kode, der kører meget effektivt til lejligheder, hvor ydeevne er meget vigtig (for f.eks. grafikmotorer, indlejrede systemer med begrænsede hardwareressourcer sammenlignet med en personlig computer) mikrobølger, vaskemaskiner osv.).

Anbefalede: