viernes, 9 de marzo de 2018

Compendio de Estudio


Presentación Compiladores, Front End - Back End


Powered by emaze

Análisis de Programas Fuente, Arboles sintácticos


Powered by emaze


- Blog actual

- Actividad analítica de códigos fuente del compañero para detectar errores

- Provocar errores léxicos, sintácticos y semánticos (calificados)

- Construcción de árboles por medio de párrafos










Actividad en Grupos



Haciendo 4 grupos, investigar sobre los siguientes temas y luego exponerlo al grupo:


Máquina de Turing

Gramática tipo cero

Gramáticas Tipo 1  (dependientes de contexto)

Gramáticas Tipo 2 (independientes de contexto, libre de contexto)

Gramáticas Tipo 3 (gramáticas regulares)




jueves, 8 de marzo de 2018

9 cosas difíciles que hacen los programadores



1. Poner nombres
Sí, elegir los nombres de las variables, funciones, clases, objetos...es lo que consideran más difícil la mayoría de los programadores. Seguro pensabais que era documentar el código o el tener que usar el trabajo de otro, ya que suele ser el debate común cuando hablamos de programación.
Una buena elección de los nombres, que transmitan lo que hacen y que sean concisos son vitales cuando se desarrolla, incluso si es un programa pequeño o una aplicación.
Sólo hay dos cosas duras en Ciencias de la Computación: Invalidar una memoria caché y nombrar las cosas.
Es una de las cosas más importantes, si quieres que tu código sea legible por otros.

2. Explicar lo que se hace (o no se hace)
¿Quién entiende el arte de la programación? Solo los programadores. Para algunos es difícil hacer entender a sus familiares y amigos (no programadores) lo que conlleva su trabajo. Todos piensan que puedes solucionar cualquier problema relacionado con la informática.
El intento de explicar a (casi todo el mundo) que no sé cómo arreglar su ordenador.

3. La estimación del tiempo para completar las tareas
Un programador puede pasar varias noches picando código para cumplir con los plazos de entrega de un proyecto. En el comienzo nunca se saben los imprevistos que pueden ocurrir.
Resulta extremadamente difícil estimar cuántas sorpresas a un problema de programación se presentarán cuando el trabajo sea llevado a la práctica.

4. Tratar con otras personas
Explicar tecnicismos a personas sin conocimientos técnicos. Hay que proporcionar informes sobre el estado de la gestión, consultar con otros ingenieros sobre el proyecto, estar de acuerdo con otros desarrolladores...
Es mucho más fácil convencer a un procesador que haga lo que quiero que a algunas personas.
Lidiar con ingenieros tratando de decirme cómo escribir código...

5. Trabajar con el código de otro.
Tener que entender, depurar o mejorar la aplicación o trozo código de otro, además de adivinar las intenciones del desarrollador original. Y si el código está mal escrito, comentando o documentado, el trabajo es mucho más tedioso.
Vivir con el código de alguien que en principio no estaba tan calificado para escribirlo.
Tratar de descifrar miles de líneas de código sin comentar.

6. La implementación de una función con la que no se está de acuerdo.
Tener que implementar una característica o función que, por cualquier razón, sientes que no debe ser incluida, pero que el cliente, o alguien por encima de tu nivel, insiste en incorporar.

7. La documentación
Crear la documentación que explique lo que hace el código o cómo funciona una aplicación. Puede ser una tarea que consuma mucho tiempo, que pueda sentirse como una pérdida de horas si nadie la va a leer. No un secreto que muchos programadores suelen preferir escribir código que documentarlo.
Tener que escribir documentos inútiles que nadie va a leer o usar, sólo porque es parte del proceso.
¡Escribir una documentación que sea buena, explicativa y concisa, y todo al mismo tiempo!

8. Pruebas
Tener que escribir pruebas para pequeñas unidades de código y asegurarse de que funcionan correctamente. Estas pruebas ayudan a dar cuerpo a errores desde el principio del proceso y pueden facilitar el testeo cuando el código se modifica o se actualiza.
9. El diseño de una solución
Tienes un conjunto de requisitos y eres el arquitecto que debe diseñar una solución técnica e implementarla. Además de satisfacer las necesidades del cliente y cumplir con el plazo requerido.
Pensar en cómo ir del punto A y terminar en el Z es la parte más difícil.
Es difícil anticipar cómo serán las cosas en realidad antes de empezar a trabajar en ello.




Conclusión: Resulta que realmente escribir código no es una de las partes más difíciles de la programación.

Variable Semántica


El estudio de los lenguajes de programación es conocido como la lingüística de la programación, por analogía con la filología. Esta comparación se basa en el hecho en que ambas poseen sintaxis (forma) y semántica (significado).


semantica_coder

Definición de semántica aplicada a la programación:

Es el conjunto de reglas que proporcionan el significado de una sentencia o instrucción de cualquier lenguaje de programación.

Obviamente estos lenguajes no pueden ser comparados con ninguno que usemos para hablar, ya que han sido diseñados para ser implementados en los ordenadores u otros dispositivos. No tienen la misma expresividad y subjetividad.

En las 9 cosas más difíciles que tienen que hacer los desarrolladores, el primer punto se refiere a poner nombres. Para la mayoría de los programadores, elegir los nombres de las variables, funciones, clases, objetos, etc., es lo más difícil.


Como desarrollador/a debes asumir la responsabilidad del código que escribas y asegurarte que sea comprensible para los demás. Es lo que te diferenciará del resto: tu profesionalidad.

Los nombres no sólo nos permiten identificar objetos, sino que también pueden ayudar a describirlos. Hay que nombrar las cosas con el fin de trabajar de manera eficiente y eficaz. Y el primer paso es reconocer que tu código será visto por otros desarrolladores.

Pregunta: ¿¿Qué es un objeto??


Características de una buena semántica:

Es comprensible
El aspecto más importante es el nombre sea comprensible. Las palabras utilizadas en tu proyecto puede venir varias fuentes. Puedes escribir para que sea ampliamente entendido o para que sólo lo reconozcan las personas con las que trabajas en un proyecto.

Es obvia
A veces el primer nombre que te viene a la cabeza puede ser la mejor opción. No juegues con conceptos abstractos. A veces darle demasiada vueltas a las cosas, empeoran el resultado.

Es funcional
Tenemos que centrarnos en la función o el propósito, no en la apariencia o el comportamiento. Es decir, ¿cuál es la función de un componente y no cómo funciona el componente?

Es consistente
Ser coherente en el enfoque de los nombres permitirá que sea más fácil la denominación de los componentes sucesivos. Las jerarquías deben ser predecibles.

Es simple
Intenta evitar poner nombres largos. Sé eficiente. Por ejemplo, intenta describir una función particular si es posible con una palabra. Y cuidado con las abreviaturas, el contexto es importante.

No debe depender de la cultura
Ten en cuenta que un término en España no tiene el mismo significado en otros países. Intenta escribir de una forma estándar o universal.

Tiene personalidad
Picar código no tiene por qué ser aburrido, los nombres pueden dar carácter a tu proyecto. Sé creativo pero sin perder de vista los punto anteriores. Además puedes jugar según el tipo de producto que estés desarrollando.


Y tú ¿qué característica agregarías?

Definición de Sintáxis



La palabra sintaxis proviene del término en latín syntaxis, que a su vez deriva de un vocablo griego que se traduce al español como “coordinar”. Se trata de la rama de la gramática que ofrece pautas creadas para saber cómo unir y relacionar palabras a fin de elaborar oraciones y expresar conceptos de modo coherente. 

En la informática, la sintaxis se entiende como el grupo de normas que marcan las secuencias correctas de los elementos propios de un lenguaje de programación.


En programación, existen tres variables relevantes: la sintaxis, la semántica y la jerarquía.

La primera tiene que ver con que un lenguaje de programación de un software o aplicación puede entenderse como una serie de caracteres en particular en combinación. La sintaxis viene a estar compuesta de las reglas que determinan si dicha combinación o "string" es válida o no y, por lo tanto, operativa.

Dentro de esa sintaxis también pueden encontrarse gramáticas y expresiones regulares. Esto quiere decir que existen caminos comunes que son usados a menudo por los programadores a la hora de trabajar asociando variables y caracteres.

Términos comunes a la hora de hablar de sintaxis de programación son: los identificadores, las palabras reservadas, las literales o constantes y los símbolos especiales.

Es común que en determinadas aplicaciones o programas recibamos un error clasificado por el mismo programa como "Error de sintaxis"; esto hace referencia a una falla en la programación de dicho software o en la combinación de las variables en su uso.

Como usuarios, al ejecutar una operación o comando, probablemente veríamos un botón, menú u opción. Sin embargo, en el código de programación o 'backend' del programa o aplicación, se vería una sintaxis particular de asociación de caracteres.