Ograniczenia niektórych języków ułatwiają implementację szybszego kodu (np. Fortran vs C i aliasing wskaźników), co stanowi kompromis między gotową wydajnością a możliwościami).
Język nie jest „zoptymalizowany” do konkretnych zadań, ale sprawia to implementacja, kompilatory i ograniczenia, które ułatwiają zrozumienie kodu przez kompilator. Prawdziwa sprawa dotyczy określonych bibliotek, algorytmy zaimplementowane w celu przyspieszenia procesu z przełącznikami w zależności od długości problemu sprawiają, że jest to optymalne.
Na przykład mnożenie wykorzystuje różne przypadki (patrz Mnożenie GMP .
Gdy język określa operacje matematyczne na wyższym poziomie, jego implementacja jest optymalna (w tym przypadku wydajna), ale nie jest to częścią specyfikacji języka.
Proszę spojrzeć na obliczenia rang macierzowych w Matlabie, Mathematice i Klonie (nie mogę teraz samodzielnie wykonać wszystkich testów, ale są one zgodne z moimi testami). Wszystkie te języki (środowiska) implementują tę samą operację wyższego poziomu, ale szczegóły implementacji różnią się, co daje różne czasy.
Kiedy niektóre zadania specyficzne dla domeny (tutaj również język specyficzny dla domeny) są ukierunkowane na określone obliczenia, są one ulepszane i optymalizowane (z biegiem lat) dla docelowych odbiorców. Jednak optymalizacja nie zawsze tak jest. Na przykład Perl ma długą historię obsługi ciągów, ale PCRE (tutaj po prostu wyrażenia regularne Perla) nie są najszybszymi (i używają dużo pamięci), ale są niezwykle ekspresyjne i potężne.
Ograniczenia języka mają znaczenie w procesie kompilacji, wspomniany aliasing wskaźnika zapobiega możliwości zmiany kolejności kodu i wymusza przeładowanie zmiennych.