Las restricciones de algunos lenguajes facilitan la implementación de un código más rápido (por ejemplo, Fortran vs C y el alias de punteros) que es una compensación entre el rendimiento y las posibilidades listas para usar).
El lenguaje no está "optimizado" para tareas específicas, pero la implementación, los compiladores y las restricciones que facilitan la comprensión del código por compilador lo hacen. El verdadero negocio se trata de bibliotecas específicas, los algoritmos implementados para acelerar el proceso con interruptores dependiendo de la longitud del problema lo hacen óptimo.
Por ejemplo, la multiplicación usa varios casos (ver multiplicación GMP .
Cuando el lenguaje especifica las operaciones matemáticas de nivel superior, su implementación es óptima (eficiente en este caso), pero esa no es la parte de la especificación del lenguaje.
Eche un vistazo al cálculo de rango de matriz en Matlab, Mathematica y Maple (no puedo realizar todas las pruebas por mí mismo en este momento, pero estas son consistentes con mis pruebas). Todos estos lenguajes (entornos) implementan la misma operación de nivel superior, pero los detalles de implementación difieren, lo que da varias veces.
Cuando alguna tarea específica del dominio (aquí también el lenguaje específico del dominio) se orienta a cálculos particulares, se mejoran y optimizan (a lo largo de los años) para el público objetivo. Pero ser óptimo no siempre es el caso. Por ejemplo, Perl tiene una larga historia de manejo de cadenas, pero PCRE (aquí simplemente las expresiones regulares de Perl) no son las más rápidas existentes (y usan mucha memoria), pero son extremadamente expresivas y poderosas.
Las restricciones del lenguaje hacen una diferencia en el proceso de compilación, el alias de puntero mencionado evita la posibilidad de reordenamiento del código y obliga a recargar las variables.