Assembler vs Interpreter
In die algemeen is samesteller 'n rekenaarprogram wat 'n program lees wat in een taal geskryf is, wat die brontaal genoem word, en dit vertaal in 'n ander taal, wat die doeltaal genoem word. Tradisioneel is brontaal 'n hoëvlaktaal soos C++ en doeltaal is 'n laevlaktaal soos Assembly-taal. Daar is egter samestellers wat 'n bronprogram wat in Assembly-taal geskryf is, kan omskakel en dit kan omskakel na masjienkode of objekkode. Samestellers is sulke gereedskap. Aan die ander kant is tolke gereedskap wat instruksies uitvoer wat in een of ander programmeertaal geskryf is. Tolk kan óf hoëvlakbronkode direk uitvoer óf dit na intermediêre kode vertaal en dit dan interpreteer óf vooraf saamgestelde kode uitvoer.
Wat is 'n Assembler?
Assembler is sagteware of 'n hulpmiddel wat Assembler-taal na masjienkode vertaal. Dus, 'n samesteller is 'n tipe samesteller en die bronkode is in Assembly-taal geskryf. Assemblage is 'n mens-leesbare taal, maar dit het tipies 'n een-tot-een-verhouding met die ooreenstemmende masjienkode. Daarom word gesê dat 'n samesteller isomorfiese (een-tot-een-kartering) vertaling uitvoer. Gevorderde samestellers verskaf bykomende kenmerke wat programontwikkeling en ontfoutingsprosesse ondersteun. Byvoorbeeld, die tipe samestellers wat makro-samestellers genoem word, bied 'n makrofasiliteit.
Wat is 'n tolk?
'n Tolker is 'n rekenaarprogram of 'n hulpmiddel wat programmeringsinstruksies uitvoer. 'n Tolker kan óf die bronkode direk uitvoer óf die bron omskakel na 'n intermediêre kode en dit direk uitvoer óf vooraf saamgestelde kode uitvoer wat deur 'n samesteller vervaardig is (sommige tolkstelsels sluit 'n samesteller vir hierdie taak in). Tale soos Perl, Python, MATLAB en Ruby is voorbeelde van programmeertale wat 'n intermediêre kode gebruik. UCSD Pascal interpreteer 'n vooraf saamgestelde kode. Tale soos Java, BASIC en Samlltalk stel eers die bron saam na 'n intermediêre kode genaamd bytecode en interpreteer dit dan.
Wat is die verskil tussen 'n samesteller en 'n tolk?
'n Samesteller kan as 'n spesiale soort samesteller beskou word, wat slegs Assembly-taal na masjienkode vertaal. Tolke is instrumente wat instruksies uitvoer wat in een of ander taal geskryf is. Tolkstelsels kan 'n samesteller insluit om kode voor interpretasie vooraf saam te stel, maar 'n tolk kan nie 'n spesiale tipe samesteller genoem word nie. Samestellers produseer 'n objekkode, wat dalk met koppelprogramme gekoppel moet word om op 'n masjien te kan loop, maar die meeste tolke kan self die uitvoering van 'n program voltooi. 'n Vervaardiger sal tipies 'n een-tot-een vertaling doen, maar dit is nie waar vir die meeste tolke nie. Omdat samestellingstaal 'n een-tot-een-kartering met masjienkode het, kan 'n samesteller gebruik word vir die vervaardiging van kode wat baie doeltreffend werk vir geleenthede waarin werkverrigting baie belangrik is (vir bv. grafiese enjins, ingebedde stelsels met beperkte hardewarehulpbronne in vergelyking met 'n persoonlike rekenaar soos mikrogolwe, wasmasjiene, ens.). Aan die ander kant word tolke gebruik wanneer jy hoë draagbaarheid benodig. Byvoorbeeld, dieselfde Java-greepkode kan op verskillende platforms uitgevoer word deur die toepaslike tolk (JVM) te gebruik.