¿Es posible construir un sitio web usando un lenguaje ensamblador?

Sí, hubo un chico búlgaro (John Found) que hizo eso.

Si eres experto en ruso, hay un artículo en el que comparte sus experiencias de “fabricación de”: https://habrahabr.ru/post/318916/.

Si no, bueno, todavía hay mucha lectura divertida: comience desde “.. :: Learning AsmBB source :: ..”.

A continuación hay un enlace a una instalación de demostración de su sitio web escrita en un lenguaje ensamblador:

AsmBB :: .. Lista de hilos /

Como puede ver, es incluso mejor que solo un sitio web, es un motor de foro que puede usar (al menos, hipotéticamente). Las instrucciones de instalación están aquí: .. :: AsmBB :: ..

De todos modos, parece un proyecto por diversión y su autor aparentemente ha logrado obtener mucho durante el desarrollo.

¡Feliz pirateo!

Esa pregunta me recuerda recuerdos de esta imagen:

Obviamente el libro no es real, es solo una broma entre los programadores.

Ahora, para responder a su pregunta, sí, podemos programar sitios web usando ensamblaje, pero como todo lo que toca el ensamblaje, implica reinventar literalmente todo lo diseñado para facilitar la programación. La mayor parte de su tiempo como desarrollador web utilizando ensamblaje se dedicará a desarrollar marcos para que el resto de su ensamblaje realmente haga algo.

Probablemente sea más fácil programar un nuevo servidor mientras está en ello.

Entonces, sí, el ensamblaje puede hacer casi cualquier cosa, pero es tan poco práctico que nadie lo haría y lo tomaría en serio.

¡Sí! Sería un desafío realmente interesante de hacer también. Pero también es una pérdida de tiempo.

La forma más sencilla sería como una aplicación CGI en IIS, donde utiliza la consola para leer los encabezados HTTP para el procesamiento y luego escribir su página web en función de la entrada.

Si desea hacerlo un poco más complicado, puede escribir su propio código de servidor web en la parte superior de la API de Windows / Linux.

Si desea hacerlo de la manera difícil, en su lugar, hablará directamente con el controlador de red, abrirá un puerto y escuchará el tráfico entrante.

Pero si quiere ser flojo, busque en Google y, por ejemplo, encuentre nemasu / asmttpd u otros proyectos que ya hacen lo que está buscando.

Pero como dije, es una pérdida de tiempo construir un servidor / sitio web en un lenguaje de tan bajo nivel. Es por eso que se han creado idiomas de nivel superior.

Sí, a cierto nivel .

En realidad, tenemos un lenguaje de WebAssembly en desarrollo (ver aquí), que promete ser un lenguaje de programación eficiente de bajo nivel para el script del lado del cliente en el navegador. Otra promesa es que WASM haría un mejor trabajo al ser un compilador objetivo que JavaScript.

A continuación, Brendan Eich habla sobre los niveles alto y bajo de JavaScript (haciendo referencia a WebAssembly).

Para mayor información:

  • WebAssembly: un formato binario para la web
  • JavaScript es lenguaje de ensamblaje web y está bien.
  • ¿Qué es WebAssembly? El amanecer de una nueva era – JavaScript Scene

A2A

Wim ten Brink tiene la mejor respuesta, por lo que solo mencionaré que algunos estudiantes lo hicieron como tarea de lenguaje ensamblador en el pasado. Un simple CGI Hello World es lo mismo que el Hello World normal, solo agrega las etiquetas adecuadas

Aparte de los propósitos de aprendizaje, podría ser un escenario válido para construir un sitio web dinámico en un pequeño dispositivo; Si bien la mayoría del desarrollo incrustado ahora está en C, el ensamblaje todavía se usa allí.

A2A. Por supuesto.

Estoy seguro de que hay algunos proyectos integrados que sirven una página web desde un humilde PIC y también he oído hablar de un servidor web que se ejecuta en un Commodore 64.

Entonces, posible, sí. Pero solo porque puedas no significa que debas hacerlo: no ganarías ningún rendimiento notable ya que el cuello de botella es probable que sea el tráfico de red, y la cantidad de dolores de cabeza que causará realmente no valen la pena.

Posible, si. De la misma manera que es posible construir una casa de tamaño completo con fósforos.

Sin embargo, es difícil imaginar una situación en la que sería una buena idea.

Realmente cada servidor web ya está integrado en el código de la máquina, una vez que se compila desde la fuente.

Si lo desea, probablemente podría crear un binario estático de un servidor web, desmontar el código de la máquina y reconstruirlo a partir de la versión en lenguaje ensamblador. No digo que esto sea bonito, pero cumple con el resumen de la pregunta.

Sí, además de martillar un clavo con un microscopio.