Conceptos Básicos

Keep track of your personal tasks and export them to your favorite calendar

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Rocket clouds
Conceptos Básicos por Mind Map: Conceptos Básicos

1. Algoritmo

1.1. Es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución.

1.2. Diagrama de Flujo

1.2.1. Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.

1.2.1.1. Item 1

1.2.1.2. Item 2

1.2.1.3. Item 3

1.3. Pseoudocódigo

1.3.1. Es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales.

1.3.1.1. Item 1

1.3.1.2. Item 2

1.3.1.3. Item 3

2. Paradigmas de programación

2.1. Tipos de Paradigmas

2.1.1. Paradigma Declarativos

2.1.1.1. Ventajas

2.1.1.1.1. Tienen la ventaja de ser razonados matemáticamente, lo que permite el uso de mecanismos matemáticos para optimizar el rendimiento de los programas. Son fiables, elegantes y expresivos.

2.1.1.2. La Programación Declarativa, en contraposición a la programación imperativa es un paradigma de programación que está basado en el desarrollo de programas especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solución.

2.1.1.3. Lenguaje de programación

2.1.1.3.1. Prolog Maude y SQL Haskell y Erlang

2.1.2. Paradigma Imperativo

2.1.2.1. Es un paradigma de programación que describe la programación en términos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea.

2.1.2.2. Lenguaje de programación

2.1.2.2.1. BASIC C D 1 Fortran Pascal Pauscal en español Perl PHP Lua Java Python

2.1.2.3. Caracteristicas

2.1.2.3.1. Orden en el que se deben realizar las operaciones con ayda de unos patrones. Se puede fijar puntos de observación en el texto de una rutina y considerar los valores de las variables.

2.1.2.4. Estructura de control

2.1.2.4.1. Las estructuras de control permiten establecer el orden de ejecución y cambiar el flujo del programa dependiendo de los resultados de las acciones primitivas.

2.1.3. Paradigma Funcional

2.1.3.1. Es un paradigma de programación declarativa basado en el uso de funciones matemáticas, en contraste con la programación imperativa, que enfatiza los cambios de estado mediante la mutación de variables.

2.1.3.2. Características

2.1.3.2.1. Están constituidos únicamente por definiciones de funciones, entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente matemáticas, en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresión depende únicamente del significado de sus subexpresiones), y por tanto, la carencia total de efectos colaterales.

2.1.3.3. Lenguaje de programación

2.1.3.3.1. Scala, Lisp, Clojure, Scheme, Ocaml, SAP y Standard ML

2.1.4. Paradigma Lógico

2.1.4.1. Este paradigma se basa en los conceptos de lógica matemática, se basa predicados que caracterizan o relacionan a los individuos involucrados y la deducción de las posibles respuestas a una determinada consulta. Es un paradigma declarativo. No hay asignaciones destructivas, se trabaja con el concepto de unificación.

2.1.4.2. Lenguaje de programación

2.1.4.2.1. El lenguaje de programación lógica por excelencia es Prolog, que cuenta con diversas variantes. La más importante es la programación lógica con restricciones (véase artículo sobre programación con restricciones), que posibilita la resolución de ecuaciones lineales además de la demostración de hipótesis.

2.1.4.3. Características

2.1.4.3.1. Aplicación de las reglas de la lógica para inferir conclusiones a partir de datos. Búsqueda de un objeto preciso

2.1.5. Paradigma Orientado

2.1.5.1. Es un paradigma de programación que usa objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.

2.1.5.1.1. Su uso se popularizó a principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.

2.1.5.2. Características

2.1.5.2.1. ABSTRACCIÓN, denota las características esenciales de un objeto.PLIMORISMO, comportamientos diferentes asociados a objetos. REDCCION DE BASURA, técnica por la cual el entorno de objetos se encarga de destruir automáticamente

2.1.5.3. Lenguaje de programación

2.1.5.3.1. ABAP, C++, C#, ADA, JAVA, VISUAL BASIC, ActionScript etc.

2.1.6. Paradigma Estructurado

2.1.6.1. Es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinases.

2.1.6.1.1. Secuencia

2.1.6.1.2. Iteración

2.1.6.2. Ventajas

2.1.6.2.1. Los programas son más fáciles de entender. La estructura de los programas es clara. Reducción del esfuerzo en las pruebas y depuración. Los programas son más sencillos y más rápidos de confeccionar. Se incrementa el rendimiento de los programadores.

2.1.6.3. Lenguaje de programación

2.1.6.3.1. C++, JAVA, VISUAL BASIC, C#

2.1.6.4. Características

2.1.6.4.1. Tiempo menor de espera en un programa ejecutable. Mayor potencial expresiva.

2.1.7. Paradigma Guiada por eventos

2.1.7.1. Es un paradigma de programación en el que tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen.

2.1.7.1.1. Detección de eventos

2.1.7.2. La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.

2.1.7.2.1. Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que ésta puede resolver.

2.1.7.3. Lenguaje de programación

2.1.7.3.1. VISUAL BASIC, LEXICO, C#, C++, VISUAL C++, AWT, JAVA

2.1.7.4. Características

2.1.7.4.1. Estructurado con la ejecución de programas. Sistema dirigido por el usario de un amplia manera.

2.1.8. Paradigma Modular

2.1.8.1. Lenguaje de programación

2.1.8.1.1. C++, JAVA, PROLOG

2.1.8.2. Conjunto de programas que sirven para interactuar con el sistema, confiriendo control sobre el Hardware, ademas de dar soporte a otros programas.

2.1.8.2.1. En cierta manera podríamos decir que en la programación clásica el flujo estaba en poder del programador y era este quien decidía el orden de ejecución de los procesos.

2.1.8.3. Características

2.1.8.3.1. Solucionar problemas de programación. Facilidad a la hora de manejar dicho programa

2.1.9. Paradigma a nivel de valores

2.1.9.1. La programación a nivel de valores es unos de los dos paradigmas contrastantes identificados por John Backus en su trabajo sobre los Programas como objetos matemáticos, siendo el otro la programación a nivel funcional. El término inicialmente utilizado por Backus fue el de programación a nivel de objetos, pero en la actualidad ese término traería confusión con la programación orientada a objetos.

2.1.9.2. Lenguaje de programación

2.1.9.2.1. ML, LISIP, ISWIM

2.1.9.3. Características

2.1.9.3.1. Combinación de valores. Asignación de numeros en el programa.ejecutable.

3. Clasificación del SW

3.1. El Software es el soporte lógico e inmaterial que permite que la computadora pueda desempeñar tareas inteligentes, dirigiendo a los componentes físicos o hardware con instrucciones y datos a través de diferentes tiposde programa.

3.1.1. El SW de sistema se divide en

3.1.1.1. Sistema Operativo

3.1.1.2. Controladores de Dispositivos

3.1.1.3. Programas utilitarios

3.2. Software de sistema

3.3. Software de aplicación

3.3.1. Son los programas diseñados para o por los usuarios para facilitar la realizacion de tareas especificas en la comptadora que puedan ser las aplicaciones.

3.3.1.1. SW de aplicación

3.3.1.1.1. Entretenimiento

3.3.1.1.2. Negocio

3.3.1.1.3. Utilerias

3.4. Software de programación

3.4.1. Es el conjunto de herramientas que permiten al desarrollo informático escribir programas usando diferentes alternativas y lenguajes de programación.

3.4.1.1. SW de programación

3.4.1.1.1. Editores de texto

3.4.1.1.2. Compiladores

3.4.1.1.3. Enlazadores

3.4.1.1.4. Interpretes

4. Programa

4.1. Un programa informático o programa de computadora es una secuencia de instrucciones, escritas para realizar una tarea específica en una computadora. Este dispositivo requiere programas para funcionar, por lo general, ejecutando las instrucciones del programa en un procesador central.

4.1.1. El programa tiene un formato ejecutable que la computadora puede utilizar directamente para ejecutar las instrucciones.

4.2. El mismo programa en su formato de código fuente legible para humanos, del cual se derivan los programas ejecutables (por ejemplo, compilados), le permite a un programador estudiar y desarrollar sus algoritmos. Una colección de programas de computadora y datos relacionados se conoce como software.

5. Programación

5.1. La programación de computadoras es el proceso iterativo de escribir o editar código fuente. Dicha edición de código fuente implica probar, analizar y perfeccionar, y, a veces, coordinar con otros programadores, en el caso de un programa desarrollado en conjunto.

5.2. Una persona que practica esta técnica se le conoce como programador de computadoras, desarrollador de software, o codificador. El proceso, a veces a largo plazo, de programación de computadoras normalmente se lo conoce como desarrollo de software. El término ingeniería de software se está convirtiendo en muy popular, ya que esta actividad es vista como una disciplina de ingeniería.

6. Editores de texto

6.1. Un editor de texto es un programa informático que permite crear y modificar archivos digitales compuestos únicamente por textos sin formato, conocidos comúnmente como archivos de texto o “texto plano”. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor.

6.1.1. Editor de paginas Web

6.1.1.1. Un editor de páginas web es una aplicación diseñada con el fin de facilitar la creación y edición de documentos HTML o XHTML.

6.1.2. Procesador de texto

6.1.2.1. El procesador de texto es un tipo de aplicación informática para la creación, edición, modificación y procesamiento de documentos de texto con formato (tal como el tipo y tamaño de la tipografía, adición de gráficos, etc.), a diferencia de los editores de texto, que manejan solo texto simple.

6.2. Ejemplos

6.2.1. Bloc de notas, editor integrado en Microsoft Windows, también conocido como Notepad (en inglés).

6.2.2. Emacs, editor muy común en Unix.

6.2.3. Gedit, editor libre que se distribuye junto con GNOME para sistemas tipo Unix. También disponible para Windows.

6.2.4. Notepad++, editor de código fuente para Windows.

7. Lenguaje de programación

7.1. Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras.

7.1.1. Procedimientos lógicos

7.1.1.1. Desarrollo lógico

7.1.1.2. Escritura del programa

7.1.1.3. Ensamblaje o compilación

7.1.1.4. Depuracion del programa

7.1.1.5. Desarrollo del documento

7.2. Condicionantes

7.2.1. If, Else if, Else

7.3. Bucles

7.3.1. For, While

8. Compiladores

8.1. Construcción de un Compilador

8.1.1. Análisis: Se trata de la comprobación de la corrección del programa fuente

8.1.2. Análisis léxico (que consiste en la descomposición del programa fuente en componentes léxicos)

8.1.3. Síntesis: Su objetivo es la generación de la salida expresada en el lenguaje objeto

8.1.4. Front-end: es la parte que analiza el código fuente

8.1.5. Back-end: es la parte que genera el código máquina

8.1.5.1. Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación.

8.1.5.1.1. Tipos de Compiladores

8.2. Interfaz de Línea de comando

8.2.1. La interfaz de línea de comandos, traducción del inglés command-line interface o CLI –la cual es, en realidad, una transcripción incorrecta de interfaz de línea de órdenes, por el falso amigo command (orden/instrucción)– es un método que permite a los usuarios dar instrucciones a algún programa informático por medio de una línea de texto simple. Debe notarse que los conceptos de CLI, shell y emulador de terminal no son lo mismo, aunque suelen utilizarse como sinónimos.

8.2.2. Funcionamiento

8.2.2.1. Consiste en un espacio donde se pueden escribir órdenes (por lo general, señalizado con un prompt). El usuario teclea una orden y la ejecuta al pasar a la línea siguiente, utilizando la tecla Entrar.

8.2.2.1.1. Las órdenes dadas a la CLI son con frecuencia de la forma:

8.2.2.1.2. PROMPT>aplicación [parametros] ficheros o URI...

8.2.2.1.3. Al finalizar y enviar la orden con la tecla Entrar, un módulo interpretador de órdenes analiza la secuencia de caracteres recibida

8.2.2.1.4. El usuario percibe el procesamiento de sus instrucciones en forma de acción. Si al usuario se le envía esta información de procesamiento en forma de texto simple, entonces se le llama salida estándar o «stdout».

8.2.2.1.5. También es posible usar scripts, es decir, archivos con instrucciones guardadas como si se estuviesen escribiendo en el momento. En caso de error, la ejecución del script puede abortarse. De esta forma, la línea de comandos puede utilizarse sin siquiera tener que lidiar con el prompt, ni estando presente frente al monitor o teclado.

9. Ejecutables

9.1. En informática, un ejecutable o archivo ejecutable, es tradicionalmente un archivo binario, o como se le conoce habitualmente, cuyo contenido se interpreta por el ordenador como un programa.

9.1.1. Generalmente, contiene instrucciones en código máquina de un procesador en concreto, pero también puede contener bytecode que requiera un intérprete para ejecutarlo. Además, suele contener llamadas a funciones específicas de un sistema operativo (llamadas al sistema).