domingo, 21 de diciembre de 2014

lenguaje de progrmacion elemntos basicos

Elementos

Todos los lenguajes de programación tienen algunos elementos básicos primitivos para la descripción de los datos y de los procesos o transformaciones que se les aplican. Estas primitivas se definen por reglas sintácticas y semánticas que describen su estructura y significado respectivamente.

Sintaxis

Forma de la superficie de un lenguaje de programación que se conoce como su sintaxis. La mayoría de los lenguajes de programación son puramente textual, que utilizan secuencias de texto, incluyendo palabras, números y signos de puntuación, al igual que los lenguajes naturales escritos. Por otra parte, hay algunos lenguajes de programación que son más de carácter gráfico, utilizando las relaciones visuales entre símbolos para especificar un programa.
La sintaxis de un lenguaje describe las posibles combinaciones de símbolos que forman un programa sintácticamente correcta. El significado que se da a una combinación de símbolos es manejado por la semántica. Dado que la mayoría de lenguajes son textuales, este artículo describe la sintaxis textual.
Sintaxis del lenguaje de programación se define generalmente usando una combinación de expresiones regulares y el formulario Backus-Naur. A continuación se muestra una gramática simple, basado en Lisp:
 expresión :: = átomo | Lista átomo :: = número | ¿. número de símbolo :: = símbolo :: = * lista :: =''
Esta gramática especifica lo siguiente:
  • una expresión puede ser un átomo o una lista;
  • un átomo puede ser un número o un símbolo;
  • un número es una secuencia continua de uno o más dígitos decimales, opcionalmente precedidos por un signo más o menos;
  • es un símbolo de una letra seguida de cero o más de los caracteres, y
  • una lista es un par coincidente de paréntesis, con cero o más expresiones en su interior.
Los siguientes son ejemplos de bien formados secuencias simbólicas en esta gramática: '12345 ','',''
No todos los programas sintácticamente correctos son semánticamente correcto. Muchos programas sintácticamente correctas son, sin embargo, mal formada, según las reglas de la lengua, y pueden dar lugar a un error de traducción o ejecución. En algunos casos, estos programas pueden exhibir un comportamiento indefinido. Incluso cuando un programa está bien definido dentro de un lenguaje, todavía puede tener un significado que no está previsto por la persona que lo escribió.
Con un lenguaje natural como un ejemplo, puede que no sea posible asignar un significado a una oración gramaticalmente correcta o la frase puede ser falsa:
  • "Las ideas verdes incoloras duermen furiosamente". es gramaticalmente bien formados, pero no tiene significado generalmente aceptado.
  • "John es un soltero casado." es gramaticalmente bien formados pero expresa un significado que no puede ser verdad.
El fragmento siguiente lenguaje C es sintácticamente correcta, pero realiza operaciones que no se definen semánticamente:
 complejo * p = NULL; complejo abs_p = sqrt;
Si se omite la declaración de tipo en la primera línea, el programa daría lugar a un error de compilación, ya que no se definiría la "p" variable. Sin embargo, el programa todavía sería sintácticamente correcta, ya que las declaraciones de tipos proporcionan información sólo semántica.
La gramática necesaria para especificar un lenguaje de programación se puede clasificar por su posición en la jerarquía de Chomsky. La sintaxis de los lenguajes de programación se puede especificar mediante una gramática de tipo 2, es decir, son gramáticas libres de contexto. Algunos lenguajes, como Perl y Lisp, contienen construcciones que permiten la ejecución durante la fase de análisis. Idiomas que tienen construcciones que permiten al programador para alterar el comportamiento del analizador hacen análisis de sintaxis de un problema irresoluble y, en general desdibujan la distinción entre análisis y ejecución. En contraste con el sistema de macro Lisp y Perl a comenzar bloques, que pueden contener cálculos generales, las macros de C son meros reemplazos de cadenas, y no requieren la ejecución de código.

ingenieria de software

es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento de software (IEEE 1993) , y el estudio de estos enfoques, es decir, la aplicación de la ingeniería al software. Integra matemáticas, ciencias de la computación y prácticas cuyos orígenes se encuentran en la ingeniería.
Entre los objetivos de la ingeniería de software están:
  • Mejorar el diseño de aplicaciones o software de tal modo que se adapten de mejor manera a las necesidades de las organizaciones o finalidades para las cuales fueron creadas.
  • Promover mayor calidad al desarrollar aplicaciones complejas.
  • Brindar mayor exactitud en los costos de proyectos y tiempo de desarrollo de los mismos.
  • Aumentar la eficiencia de los sistemas al introducir procesos que permitan medir mediante normas específicas, la calidad del software desarrollado, buscando siempre la mejor calidad posible según las necesidades y resultados que se quieren generar.
  • Una mejor organización de equipos de trabajo, en el área de desarrollo y mantenimiento de software.
  • Detectar a través de pruebas, posibles mejoras para un mejor funcionamiento del software desarrollado

Recurso humano

Son todas aquellas personas que interviene en la planificación de cualquier instancias de software (por ejemplo: gestor, ingeniero de software experimentado, etc.), El número de personas requerido para un proyecto de software sólo puede ser determinado después de hacer una estimación del esfuerzo de desarrollo...

Recursos de software reutilizables

Son aquellos componentes de un software que son usados en otras aplicaciones. De la misma índole, ya sea para reducir costos o tiempo.

Recursos de entorno

Es el entorno de las aplicaciones (software y hardware) el hardware proporciona el medio físico para desarrollar las aplicaciones (software), este recurso es indispensable

Económicamente

En los Estados Unidos, el software contribuyó a una octava parte de todo el incremento del PIB durante la década de 1990 (alrededor de 90,000 millones de dólares por año), y un noveno de todo el crecimiento de productividad durante los últimos años de la década (alrededor de 33.000 millones de dólares estadounidenses por año). La ingeniería de software contribuyó a US$ 1 billón de crecimiento económico y productividad en esa década. Alrededor del globo, el software contribuye al crecimiento económico de maneras similares, aunque es difícil de encontrar estadísticas fiables. 
Además, con la industria del lenguaje está hallando cada vez más campos de aplicación a escala global.

Socialmente

La ingeniería de software cambia la cultura del mundo debido al extendido uso de la computadora. El correo electrónico (e-mail), la WWW y la mensajería instantánea permiten a la gente interactuar de nuevas maneras. El software baja el costo y mejora la calidad de los servicios de salud, los departamentos de bomberos, las dependencias gubernamentales y otros servicios sociales. Los proyectos exitosos donde se han usado métodos de ingeniería de software incluyen a GNU/Linux, el software del transbordador espacial, los cajeros automáticos y muchos otros.