Eliminar "motor Javascript" de "Conceptos generales"
La sección "Conceptos generales" no está relacionada con un idioma en particular. ¿No debería eliminarse el enlace al " motor Javascript "?
Bastien bellomo ( charla ) 12:57, 5 de septiembre de 2016 (UTC)
- Tienes razón, no es un idioma específico, pero los "motores JS" son una categoría de tiempo de ejecución importante en estos días (debido a la ubicuidad de JS ), y creo que merecen una mención como tal (además de mencionar node.js en "tiempos de ejecución notables"). Quería agregarlo como una subcategoría de máquinas virtuales, pero parece que me olvidé de sangrarlo. ¿Qué piensas? François Robere ( charla ) 18:34, 5 de septiembre de 2016 (UTC)
- PD: La ubicuidad de los motores JS es tal que ahora se está desarrollando un subconjunto de JS como una especie de ensamblaje nuevo , capaz de ejecutar aplicaciones escritas en muchos otros lenguajes. Esto generaliza JS y, en mi opinión, hace que valga la pena señalar esos tiempos de ejecución no solo como "motores JS" per se, sino como una categoría particular de VM. François Robere ( charla ) 19:21, 5 de septiembre de 2016 (UTC)
Reordenar por rol en lugar de función
GliderMaven Con respecto a su edición reciente : el problema de categorizar las diferentes estrategias de ejecución de la forma en que lo hizo (y de hecho el problema que tuve para entenderlas yo mismo, hace algún tiempo) es que la dicotomía compilador / intérprete dejó de existir con la llegada de las VM. Un VM, en papel, es un intérprete glorificado; en realidad es parte de un sistema complejo que traduce, optimiza y ejecuta código usando diferentes estrategias en diferentes fases de ejecución del programa. No es ni un compilador ni un intérprete per se; de hecho, las máquinas virtuales han sustituido completamente a estas últimas. Por lo tanto, prefiero que la clasificación sea más granular, por la función de componentes específicos en lugar de las categorías amplias de "compilado" frente a "interpretado". François Robere ( charla ) 13:57, 31 de octubre de 2017 (UTC)
- Soy perfectamente consciente de eso. Sin embargo, hay una distinción útil que puede hacer. Necesita dibujar los límites del sistema correctamente. ¿El sistema traduce o ejecuta el código? Si es una máquina virtual, entonces no es un compilador. Seguro que bien puede * contener * un compilador, pero es formalmente un intérprete o un sistema de tiempo de ejecución. Del mismo modo, un compilador puede contener un intérprete con fines de optimización, pero fundamentalmente, no ejecuta el código, genera código, que debe ser ejecutado por un segundo sistema. Tienen definiciones * diferentes *. GliderMaven ( charla ) 15:34, 31 de octubre de 2017 (UTC)
- Pero no se trata de "límites del sistema", sino de componentes. Tanto los intérpretes como los compiladores realizan la compilación AOT y la transcompilación, sin embargo, los enumera solo en "compilación". Una sola máquina virtual puede realizar todas y cada una de las funciones de un compilador en las etapas de ejecución, pero lo coloca solo bajo "intérpretes". Si tuviéramos que enumerar todos los lenguajes de programación existentes en "compilado" o "interpretado", es posible que haya tenido un punto (aunque varios lenguajes se compilan e interpretan, ambos ejecutados por un solo ejecutable), pero tal como está esto La distinción no solo es inexacta e irrelevante (desde un punto de vista teórico también, por cierto), sino que conduce a errores cuando se necesita un análisis más granular, como en este caso. François Robere ( charla ) 21:02, 31 de octubre de 2017 (UTC)
- No, un compilador se comporta externamente de manera completamente diferente a un intérprete. Como dije, aunque algunos intérpretes contienen internamente componentes que son compiladores y viceversa, todavía se comportan externamente como intérpretes y compiladores respectivamente. Tratar de fusionarlos en una sola cosa no te lleva a ninguna parte y es particularmente inútil para el lector que también está tratando de aprender. GliderMaven ( charla ) 22:58, 31 de octubre de 2017 (UTC)
- Es incorrecto describir un sistema de esa manera por sus componentes. Esa es una falacia de composición . GliderMaven ( charla ) 22:58, 31 de octubre de 2017 (UTC)
- Una máquina virtual es un intérprete, no un compilador; debido a la forma en que se comporta, incluso si usa la compilación internamente. GliderMaven ( charla ) 22:58, 31 de octubre de 2017 (UTC)
- O, digámoslo de esta manera: en nuestros propios artículos, tanto los compiladores como los intérpretes tienden a definirse por sus comportamientos externos, no por tecnologías internas. GliderMaven ( charla ) 23:15, 31 de octubre de 2017 (UTC)
- De modo que admite que un compilador / intérprete puede ser tanto un componente como un sistema. Puede que volvamos a eso más tarde.
y es particularmente inútil para el lector que también está tratando de aprender
: está agrupando todas las estrategias de compilación, excepto una, solo bajo "compiladores", a pesar de que todos ellos también son utilizados por intérpretes. ¿Cómo es eso útil (también es bastante deficiente, ya que su agrupación aborda solo la distinción compilador / intérprete, en lugar de las fases reales de ejecución)? François Robere ( charla ) 14:01, 1 de noviembre de 2017 (UTC)
- Porque esta mesa está tratando de organizar algo por sus principales características esenciales, y los comportamientos externos que necesariamente tienen es una muy buena manera de hacerlo. Organizar algo por componentes internos que algo puede, o incluso no tener, no va muy lejos en absoluto. GliderMaven ( charla ) 15:48, 1 de noviembre de 2017 (UTC)
- Describir a un intérprete como un "traductor" es decididamente incómodo y, en general, incorrecto . Los tipos de intérpretes más comúnmente escritos, no hacen nada que se reconozca generalmente como traducción, en absoluto. GliderMaven ( charla ) 15:48, 1 de noviembre de 2017 (UTC)
- No, no lo es ... y debería saberlo, yo lo creé.
- Entonces, ¿está convencido de que las estrategias de compilación, por ejemplo, no tienen nada que ver con las máquinas virtuales y no deben agruparse? François Robere ( charla ) 16:45, 1 de noviembre de 2017 (UTC)
- Es una gran barra lateral, pero te estás esforzando demasiado para complicar demasiado las cosas. Estas barras laterales son solo una cosa para que las personas encuentren los artículos correctos, no para descubrir conexiones profundas entre ellos. Esas conexiones se describen muy bien en los artículos relevantes. ¡Mantenlo simple y estúpido! GliderMaven ( charla ) 17:25, 1 de noviembre de 2017 (UTC)
- Al contrario: estoy tratando de mantenerlo simple; y no solo simple, sino correcto. Deje que quien esté interesado siga leyendo sobre las diferencias exactas entre compiladores, intérpretes y máquinas virtuales. Mientras tanto, deje que la barra lateral refleje que no hay diferencia entre la compilación realizada por cualquiera, en lugar de confundir al lector pobre que se pregunta cómo es que JS puede tener un compilador y cuándo se convirtió C en un lenguaje interpretado . La compilación es ante todo un proceso , y esta barra lateral significa reflejar eso. François Robere ( charla ) 19:48, 1 de noviembre de 2017 (UTC)
- Claro, la compilación puede ser eso, pero esta barra lateral está vinculada al compilador . Un compilador generalmente se considera un sistema independiente, no un componente. Quiero decir, existen como componentes, pero eso no es lo que normalmente piensa la gente y, por lo tanto, es probable que sea menos útil. Y aparte de eso, incluso un proceso debe tener un límite de sistema. GliderMaven ( charla ) 22:07, 1 de noviembre de 2017 (UTC)
- Me parece que me repito : la compilación es ante todo un proceso. Cómo y cuándo se realiza es secundario a este hecho, y la distinción entre "independiente" e "integrado" es casi obsoleta (y vea el caso de Java , donde se espera que trabaje tanto con un compilador como con
javac
un VM—java
—ambos realizan compilación ). Además, introduce errores en una barra lateral que se ocupa más de los detalles (por ejemplo, modos de compilación) que de los "sistemas"; de hecho, los únicos dos sistemas "completos" mencionados son GCC y LLVM . Aún tiene que mostrar cómo puede hacer esta distinción y mantener las cosas simples y útiles, o evitar errores. Tenga en cuenta que la barra lateral no era errónea para empezar ; tu revisión es. François Robere ( charla ) 08:33, 2 de noviembre de 2017 (UTC)
- Me parece que me repito : la compilación es ante todo un proceso. Cómo y cuándo se realiza es secundario a este hecho, y la distinción entre "independiente" e "integrado" es casi obsoleta (y vea el caso de Java , donde se espera que trabaje tanto con un compilador como con
- Entonces, ¿estás afirmando seriamente que el programa 'java' es (¿principalmente?) Un compilador? Quiero decir, estoy muy, muy familiarizado con Java y las técnicas JIT con reconocimiento de tipos que se utilizan para que se ejecute bastante rápido, pero normalmente nunca me referiría a él de esa manera. ¿Parece estar diciendo que la barra lateral debería describirlo de esa manera? GliderMaven ( charla ) 22:22, 2 de noviembre de 2017 (UTC)
- Estoy diciendo que te estás perdiendo todo el punto, de nuevo. Vuelva a leer lo anterior. François Robere ( charla ) 13:14, 3 de noviembre de 2017 (UTC)
- Sin embargo, es posible que tenga una solución en proceso. François Robere ( charla ) 13:52, 3 de noviembre de 2017 (UTC)
- Ha realizado cambios. "Programas involucrados en la ejecución", y debajo tienes 'compilador' ??? Lo sentimos, pero un compilador AOT estándar no está involucrado en la ejecución. ¿Parece estar completamente en el espacio mental de 'compiladores ejecutan cosas'? ¿No ejecutan cosas, preparan cosas para ejecutar? GliderMaven ( charla ) 16:19, 3 de noviembre de 2017 (UTC)
- Quiero decir, entiendo que las técnicas de recopilación y JIT son geniales, pero el programa que estoy usando para interactuar contigo es simplemente un programa compilado. Es casi seguro que el sistema operativo que está ejecutando es un programa compilado, etc. GliderMaven ( charla ) 16:19, 3 de noviembre de 2017 (UTC)
- Si está dispuesto a realizar cambios constructivos (por ejemplo, cambiar el nombre de esa sección), puede hacerlo. Por el momento, estoy tratando principalmente de adaptarme a sus preferencias sin introducir errores, como lo hicieron sus ediciones. Pero antes de hacer eso, tómese un tiempo e intente comprender lo que esta barra lateral realmente pretende lograr (y, por extensión, esa sección). Lo he repetido y reiterado anteriormente, pero parece que lo ignoras. François Robere ( charla ) 19:25, 3 de noviembre de 2017 (UTC)
- Me sentiría mucho más feliz con esto si realmente pudieras definir qué es un compilador. Pero no creo que puedas. Puedo, y mi definición es la misma que la del compilador . ¿Lo que es tuyo? GliderMaven ( charla ) 23:45, 3 de noviembre de 2017 (UTC)
- Es inexacto, pero satisfactorio para los propósitos de esta discusión (que hace poco por resolver). ¿Estás mucho más feliz ahora? (Si no es así, tenga un Tim Tam .) François Robere ( charla ) 00:09, 4 de noviembre de 2017 (UTC)
- ¿Qué quieres decir con 'procesamiento de código' ??? GliderMaven ( charla ) 00:11, 4 de noviembre de 2017 (UTC)
- Tienes una mejor sugerencia? François Robere ( charla ) 00:15, 4 de noviembre de 2017 (UTC)
- La revisión actual parece razonable. Lo revisaré mañana y veré si todavía lo hace. François Robere ( charla ) 01:01, 4 de noviembre de 2017 (UTC)
- Tienes una mejor sugerencia? François Robere ( charla ) 00:15, 4 de noviembre de 2017 (UTC)