Język prymitywny
W informatyce prymitywy językowe [ potrzebne źródło ] to najprostsze elementy dostępne w języku programowania . Prymityw jest najmniejszą „jednostką przetwarzania” dostępną dla programisty danej maszyny lub może być atomowym elementem wyrażenia w języku.
Prymitywy to jednostki mające znaczenie, tj. wartość semantyczną w języku. Tym samym różnią się one od tokenów w parserze , które są minimalnymi elementami składni .
Prymitywy na poziomie maszyny
Instrukcja maszynowa , zwykle generowana przez program asemblera , jest często uważana za najmniejszą jednostkę przetwarzania, chociaż nie zawsze tak jest. Zwykle wykonuje coś, co jest postrzegane jako jedna operacja, taka jak kopiowanie bajtu lub ciągu bajtów z jednej lokalizacji pamięci komputera do innej lub dodawanie jednego rejestru procesora do innego.
Prymitywy mikrokodu
wiele dzisiejszych komputerów zawiera jeszcze niższą jednostkę przetwarzania zwaną mikrokodem , która interpretuje kod maszynowy i wtedy właśnie instrukcje mikrokodu byłyby prawdziwymi prymitywami. Instrukcje te byłyby zazwyczaj dostępne do modyfikacji tylko przez programistów dostawcy sprzętu .
Prymitywy języka wysokiego poziomu
Program w języku programowania wysokiego poziomu (HLL) składa się z dyskretnych instrukcji i prymitywnych typów danych , które mogą być również postrzegane jako wykonujące pojedynczą operację lub reprezentujące pojedynczy element danych, ale na wyższym poziomie semantycznym niż te dostarczane przez maszynę. Kopiowanie elementu danych z jednego miejsca do drugiego może w rzeczywistości obejmować wiele instrukcji maszynowych , które na przykład
- obliczyć adres obu operandów w pamięci na podstawie ich pozycji w strukturze danych ,
- konwertować z jednego typu danych na inny
zanim w końcu
- wykonanie ostatecznej operacji składowania do miejsca docelowego.
Niektóre instrukcje HLL, szczególnie te obejmujące pętle , mogą generować tysiące, a nawet miliony prymitywów w języku programowania niskiego poziomu (LLL), które obejmują rzeczywistą długość ścieżki instrukcji, którą procesor musi wykonać na najniższym poziomie. Ta percepcja została nazwana karą za abstrakcję .
Prymitywy języka interpretowanego
Interpretowana instrukcja języka ma podobieństwa do prymitywów HLL, ale z dodatkową dodaną warstwą . Zanim instrukcja może zostać wykonana w sposób bardzo podobny do instrukcji HLL: najpierw musi zostać przetworzona przez interpreter , proces, który może obejmować wiele elementów pierwotnych w docelowym języku maszynowym.
Prymitywy językowe czwartej i piątej generacji
Języki programowania czwartej generacji (4GL) i języki programowania piątej generacji (5GL) nie mają prostej korespondencji jeden-do-wielu od prymitywów wysokiego do niskiego poziomu. Istnieją pewne elementy prymitywów języka interpretowanego zawarte w specyfikacjach 4GL i 5GL, ale podejście do pierwotnego problemu jest mniej konstruktem języka proceduralnego i jest bardziej zorientowane na rozwiązywanie problemów i inżynierię systemów .
Zobacz też
- ^ Surana P (2006). „Meta-kompilacja abstrakcji językowych” (PDF) . Zarchiwizowane (PDF) od oryginału w dniu 17.02.2015 r . Źródło 2008-03-17 .
- Bibliografia _ „Kara za abstrakcję danych (DAP) Benchmark dla małych obiektów w Javie” . Zarchiwizowane od oryginału w dniu 11.01.2009 . Źródło 2008-03-17 .
- Bibliografia _ Stephanidesa (2002). „Ocena wydajności i mocy języków programowania obiektowego i proceduralnego”. W Bliebergerze; Strohmeier (red.). Materiały - VII Międzynarodowa Konferencja Niezawodnych Technologii Oprogramowania - Ada-Europe'2002 . Skoczek. P. 367. ISBN 978-3-540-43784-0 .