Обмеження деяких мов полегшує реалізацію більш швидкого коду (наприклад, Fortran vs C та псевдонімування покажчиків), що є компромісом між нестандартною продуктивністю та можливостями).
Мова не "оптимізована" для конкретних завдань, але реалізація, компілятори та обмеження, які полегшують розуміння коду компілятором, це робить. Справжня угода стосується конкретних бібліотек, алгоритми, що реалізуються для прискорення процесу за допомогою перемикачів залежно від довжини проблеми, роблять його оптимальним.
Наприклад, для множення використовуються різні випадки (див. Множення GMP) .
Коли мова вказує математичні операції вищого рівня, її реалізація є оптимальною (в цьому випадку ефективна), але це не є частиною мовної специфікації.
Будь ласка, подивіться на обчислення матричних рангів у Matlab, Mathematica та Maple (я не можу зараз виконати всі тести, але вони відповідають моїм тестам). Усі ці мови (середовища) реалізують однакові операції вищого рівня, але деталі реалізації відрізняються, що дає різний час.
Коли якесь завдання, яке стосується конкретного домену (тут також орієнтована мова на домен), орієнтується на конкретні розрахунки, вони вдосконалюються та оптимізуються (з роками) для цільової аудиторії. Але бути оптимальним не завжди так. Наприклад, Perl має довгу історію поводження з рядками, але PCRE (тут просто регулярні вирази Perl) - не найшвидші існуючі (і використовують багато пам'яті), але надзвичайно виразні та потужні.
Обмеження мови змінює процес компіляції, згаданий псевдонім вказівника запобігає можливості переупорядкування коду та примушує перезавантажувати змінні.