Pregunta

yo soy un estudiante de inicio en el CS, y mis clases son en su mayoría en Java. Actualmente estoy pasando por "Little Schemer" como un estudio de uno mismo, y en el proceso de encontrar la manera de hacer que he encontrado numerosas referencias a "implementaciones" del esquema. Mi pregunta es, ¿cuáles son las implementaciones?

¿Son sub-dialectos del Esquema, o es que algo más (DrScheme parecen permitir diferentes "sabores" de la lengua)? ¿Es sólo el nombre dado a cualquier ecosistema dado que incorpora un IDE, intérprete, herramienta interactiva y similares?

¿Todos los otros idiomas (por ejemplo, Java) también tienen una variedad de "implementaciones", o es algo reservado a las lenguas "abiertos"?

Gracias,

Joss Delage

¿Fue útil?

Solución

Una implementación de un lenguaje de programación es un compilador o intérprete para ese idioma. Los componentes adicionales del sistema ecológico, como entornos de desarrollo, pueden ser parte de una aplicación, pero no son necesarios. Para el Esquema hay muchos, por ejemplo DrScheme, Guile, Gambit.

Muchos lenguajes de programación tienen diferentes implementaciones, pero todas las implementaciones de un determinado idioma deben poner en práctica (es decir, de compilación) exactamente el mismo dialecto. Eso es más fácil si hay una especificación clara y oficial de la lengua, como es el caso para el Esquema. Por supuesto, la mayoría de las especificaciones del lenguaje pasan por muchas versiones, por lo que diferentes implementaciones pueden soportar diferentes versiones del lenguaje.

Para Java, existen implementaciones de Sun, Oracle, IBM, y creo que uno al otro.

Otros consejos

Un aplicación de una lengua significa cualquier programa que se ejecuta o compila ese idioma específico.

En el esquema en concreto, es una buena pregunta, porque ha habido varias revisiones importantes de la especificación del lenguaje. Más allá de eso, hay una gran cantidad de idiomas (incluyendo el esquema original!) Que se llaman Esquema que no siguen ninguna de las especificaciones por completo. Los idiomas para principiantes HTDP son pequeñas con el fin de ser un poco restrictiva acerca de cómo se resuelven los problemas (y probablemente por otras razones). El GIMP hasta hace muy poco utilizó un esquema no estándar intérprete llamado SIOD (Esquema En Uno Defun o el régimen en un día). Hay muchos otros ejemplos; véase, por ejemplo dialectos del Esquema para llevar PLT del Esquema de soporte estándar del lenguaje.

Una implementación es de un fabricante concreto de versión / producto que implementa (se ajusta a, proporciona, etc.) de un cierto estándar (interfaz de clase, API, especificación del lenguaje, etc.).

Para hacer este sencillo de entender por analogía, tanto Coca-Cola y Pepsi se pueden considerar para ser puestas en práctica de soda (o, si usted está tan inclinado, del Pop). Soda / Pop es un concepto general, y Coca-Cola y Pepsi son determinados productos que se ajusten a ese concepto.

Del mismo modo, Mac OS X y Linux son ambas implementaciones de Single UNIX Specification. El compilador GNU C ++ y el Intel compilador de C ++ son implementaciones del lenguaje de programación C ++. El Sun Java JDK 6, el OpenJDK, y el compilador GNU para Java (GCJ) son todas las implementaciones de Java.

Dentro de Java, como pronto descubrirá, la palabra "instrumentos" se utiliza como una palabra clave cuando una clase proporciona una definición concreta de una función declarada en una interfaz, ya que, al proporcionar la definición concreta, que implementa la clase de los requisitos del concepto general encarnado por la interfaz.

Espero que ayuda a mejorar su comprensión del significado de "aplicación".

Una aplicación es un compilador o intérprete para un lenguaje de programación; es una manera de traducir las instrucciones de la lengua en el comportamiento. El lenguaje común la mayoría con varias implementaciones de hoy es probablemente JavaScript.

Cuando la gente habla de implementaciones, a menudo en el contexto de tener que lidiar con los problemas que surgen de tener múltiples. Hay beneficios - su favorito va a hacer las cosas como te gusta - pero los problemas pueden ser frustrantes. Debido a que Chrome y Firefox e IE y Safari todos se comportan de forma ligeramente diferente con el mismo código JavaScript, los desarrolladores web tienen que pasar una gran cantidad de tiempo a probar su código en los distintos navegadores, la detección de los cuales uno está utilizando, y adaptar el código a la ligeramente diferentes conjuntos de bibliotecas, insectos, etc.

Algunos idiomas están definidos por una implementación estándar (rubí, Perl, Python) en lugar de un documento, por lo que no se oye de múltiples implementaciones de aquellos. Incluso en aquellos idiomas que tiene el problema relacionado de diversas versiones que tienen un comportamiento diferente.

Las implementaciones no son un fenómeno nuevo:. De vuelta en sus altos días escolares, Bill Gates, uno consiguió su escritura comienzo de muchas implementaciones básicas, por ejemplo

Lo que hace que los problemas peores con el esquema que con otros lenguajes es que la especificación es intencionalmente pequeñas - intentos para especificar muy poco. La ventaja es que la gente que los lenguajes de programación de diseño puede crear un nuevo esquema experimental de aplicación con nuevas propiedades ordenadas de forma relativamente rápida. Una vez que han hecho esto, se puede afirmar que incluso el lenguaje pequeño que han escrito es "útil", porque otros han demostrado cómo extender el lenguaje pequeño a uno útil. Sin embargo, hay una gran cantidad de trabajo en el que "simple cuestión de programación", y cada aplicación tiene que hacer un gran número de decisiones por su cuenta, por lo que las diferencias entre las implementaciones son muchas y grandes. Así, los problemas asociados con múltiples implementaciones son muchas y grandes en el Esquema comparación con lenguas más plenamente especificados.

comunidad El Esquema reconoce el problema, junto con el beneficio de una pequeña memoria descriptiva, y está trabajando activamente en maneras de hacer la transición de la lengua experimental a lenguaje útil más clara con las nuevas versiones de la norma.    http://scheme-reports.org/

Por ahora (2010), yo personalmente recomiendo que los nuevos usuarios comienzan a trabajar en el PLT Scheme, y me alegro de que comenzó allí. No deje que el problema de muchas implementaciones te asuste: hay una gran cantidad de beneficios de trabajar en el idioma que los diseñadores lenguaje de programación diseñado para ellos. PLT tiene una comunidad grande y un buen conjunto de bibliotecas que le ayudarán a superar las dificultades antes mencionadas.

Best, Grem

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top