¿Cuál es la mejor manera de comenzar a aprender el diseño del lenguaje de programación?

  1. Leer ” Estructura e interpretación de programas informáticos”. El Capítulo 4 requiere que escribas un intérprete de Scheme usando Scheme – un evaluador de metaciclo. Enseña muchos conceptos de programación.
  2. Revisa estos cursos. Se trata de “cómo pensar acerca de los lenguajes de programación” en lugar de enseñar algunos lenguajes X. SML, Racket y Ruby se usan para enseñar. La Parte B requiere que escribas un intérprete simple en Racket.
    1. Lenguajes de programación, Parte A – Universidad de Washington | Coursera
    2. Lenguajes de programación, Parte B – Universidad de Washington | Coursera
    3. Lenguajes de programación, Parte C – Universidad de Washington | Coursera
  3. Estudio sobre varios lenguajes de programación que ya están disponibles. Pero recuerda que gran parte de lo básico es lo mismo. De esa manera usted puede decidir qué características incluir o no. Aquí están algunas…
    1. ¿Tu lenguaje usa un recolector de basura como Java? ¿O es responsabilidad del programador como en C? ¿O utilizas el recuento de referencias como en Swift? De otra manera, revisa la propiedad de Rust y pide semántica prestada.
    2. Mecanografiado estáticamente o dinámicamente? ¿Tiene un sistema de Inferencia de Tipo? Compare los sistemas de tipos de C ++, Haskell, Scala, Java, etc.
    3. Apoyo a la concurrencia. Echa un vistazo a la rutina Go de Golang y las características del canal, el modelo de actor de Erlang.
    4. En la parte frontal: ¿planea incluir macros, coincidencia de patrones? ¿Qué pasa con la sintaxis y la gramática asociada? Manténgalo simple para que pueda usar generadores de analizador sin mucha molestia.
  4. Creo que sabes sobre herramientas como lex y yacc, flex y bison y sus contrapartes para otros idiomas. Usalos, usalos a ellos.
  5. Creo que conoces el famoso ” Libro del Dragón”. Además de eso, echa un vistazo a ” El libro de Tiger” – Implementación de compilador moderno . Creo que esto ayuda. Parece que el libro está dirigido a estudiantes que toman cursos de compilación. Se da un resumen y los detalles de la implementación se dejan como ejercicio. No es tan grande como el libro del Dragón, pero es práctico.

Dicho esto, escribe primero un intérprete para tu idioma. Es simple.

No he trabajado con eso, pero he oído hablar de la infraestructura de compilador LLVM que también se usa en muchos compiladores de calidad de producción. Si encuentra buenos recursos, por favor, deje un mensaje.

Buena suerte 🙂

Solo te diré lo que he hecho …

Si tiene tiempo suficiente (comencé en la clase 8, actualmente estoy en la clase 11), puede seguir la siguiente secuencia:

  1. Primero puedes aprender QBASIC. Es un lenguaje muy básico y constituye una buena base para aprender cómo funciona un programa. Lo aprendí de aquí. Aprende todo lo que quieras. Omita los capítulos sobre gráficos y sonido, ya que no son útiles. No espere que haga algo grandioso desde QBASIC, ya que está obsoleto y es bueno para ser introducido en la programación.
  2. Luego puedes comenzar con C ++ sin necesidad de aprender C. Puedes aprender C ++ de los libros. Lo aprendí de los Principios y Prácticas de Programación usando c ++ de Bjarne Stroustrup. Entonces podrías aprender más de la cartilla de C ++ de Lippman.
  3. C ++ es un lenguaje muy bueno y útil después de aprenderlo bien. Puede elegir fácilmente con algunos lenguajes más avanzados como Python, Java, etc., que están construidos principalmente en C ++. La mayoría de los sistemas informáticos están construidos en C ++.

Después de todo, la programación tiene más que ver con el pensamiento lógico. Los anteriores son solo idiomas y solo proporcionan una forma de comunicarse con la computadora y decirle qué hacer y cómo hacerlo. Sin embargo, debe poder explicar las cosas a la computadora de manera algorítmica utilizando cualquier idioma. Y gradualmente aprenderías que la computadora es la cosa ” más tonta ” que jamás hayas encontrado.

Puede que esta no sea la mejor manera pero funcionó para mí y puedo programar bastante bien.

Hop esto ayuda !!

Dónde empezar depende en gran medida de dónde quieres estar. En primer lugar, debe comprender algunos de los conceptos básicos de la informática, como la estructura de datos y los algoritmos, la arquitectura de la computadora, la seguridad, etc. Para este fin, necesita un mentor que lo lleve de lo básico al nivel profesional. La mayoría de los estudiantes de tu edad optan por el autoaprendizaje, y el 70% de ellos lo abandonan al principio, porque no podían comprender los conceptos por completo. Por lo que sugeriría que, si se toma en serio la programación y su carrera profesional, vaya a una escuela de programación. Holberton es una buena opción. Allí podrás aprender de manera efectiva.

Buena suerte

Le recomiendo que lea este libro si aún no lo ha hecho:
Aspectos básicos de los lenguajes de programación: 9780262062794: Computer Science Books @ Amazon.com

Este libro lo guiará a usted en el campo del diseño de lenguaje al guiarlo a través de los pasos de cómo los diseñadores de lenguajes de programación operan cuando diseñan un lenguaje de programación: concebir, modelar, clarificar, implementar, optimizar

Para ello, le enseña cómo escribir intérpretes para las características comunes y no tan comunes del lenguaje y, en última instancia, le enseña conceptos como la corrección de las transformaciones que lo guían hasta la generación del compilador.

La mejor manera de prepararse para diseñar algo nuevo es aprender sobre trabajos anteriores en el campo. Hay literalmente cientos de lenguajes de programación, miles si incluyes “pequeños lenguajes”. Unas pocas docenas de estos tenían algo nuevo que decir cuando fueron creados.

Aprende sobre esos idiomas. Especialmente lea los documentos iniciales sobre ellos donde sus diseñadores hablaron sobre lo que intentaban lograr. No necesita estar de acuerdo con todos sus objetivos, ni con su propia evaluación del éxito (a menudo no lo hago), pero debe comprender lo que dicen.

Una vez que haya hecho lo anterior, estará listo para comenzar a pensar en el diseño del lenguaje de una manera fundamental, no simplemente “azúcar sintáctica”.

Hola amigos,

Encontré las siguientes aplicaciones, útiles para aprender programación desde cero, que contienen cursos de video gratuitos, preguntas para entrevistas, programas típicos, rincón de discusión, cuestionarios de desafío y notas fuera de línea, y mucho más. Vamos a intentarlo.

Aprende Python de PAL

Learn Python Programming – Aplicaciones de Android en Google Play

Aprende C de PAL

Learn C Programming – Aplicaciones de Android en Google Play

Aprende Java desde PAL

Learn Java Programming – Aplicaciones de Android en Google Play

Aprende C # de PAL

Learn C # Programming – Aplicaciones de Android en Google Play

Agregando a Will Henderson,

ningún lenguaje de programación tiene una solución completa para los problemas del mundo real y siempre hay un margen de mejora.

Además de trabajar en la característica que desea tener y la no existencia de esas características que le preocupan, intente ver los blogs y las publicaciones / unirse a grupos similares para descubrir cómo las personas están tratando de entender los problemas y qué trabajo ya se está realizando. hecho. Compartir conocimiento siempre es un buen comienzo para este rey de las cosas.

Soy un defensor de cualquier método que sepa que funciona mejor para usted. Antes de pagar por cualquier tipo de plan de estudios o crédito universitario, consulte diferentes guías GRATUITAS de programación. Hay bastantes programas para la programación de Java / C ++ y otros lenguajes también. ¡Incluso hay guías de programación y ayudas dirigidas al grupo de edad de la escuela intermedia!