• No se han encontrado resultados

Fundamentos de Programación. Unidad 1: Conceptos básicos

N/A
N/A
Protected

Academic year: 2021

Share "Fundamentos de Programación. Unidad 1: Conceptos básicos"

Copied!
40
0
0

Texto completo

(1)

Fundamentos de Programación

(2)

1.1 Clasificación del Software

Hardware: se refiere a los componentes

físicos (tangibles) que conforman un sistema

computacional.

Software: es el conjunto de los programas de

cómputo, procedimientos, reglas,

documentación y datos asociados que

forman parte de las operaciones de un

sistema de computación (componentes

intangibles).

(3)

1.1.1 Software de Sistemas

Su objetivo es desvincular adecuadamente al usuario y al

programador de los detalles de la computadora en

particular que se use, aislándolo especialmente del

procesamiento referido a las características internas de:

memoria,

discos,

puertos

y

dispositivos

de

comunicaciones, impresoras, pantallas, teclados, etc. El

software de sistema le procura al usuario y

programador adecuadas interfaces de alto nivel,

herramientas y utilidades de apoyo que permiten su

mantenimiento.

Sistemas operativos

Controladores de dispositivos

Herramientas de diagnóstico

Herramientas de Corrección y Optimización

Servidores

(4)

1.1.2 Software de programación

Es el conjunto de herramientas que

permiten

al

programador

desarrollar

programas informáticos, usando diferentes

alternativas y lenguajes de programación, de

una manera práctica.

Editores de texto

Compiladores

Intérpretes

Enlazadores

Depuradores

Entornos de Desarrollo Integrado (IDE)

Interfaz Gráfica de Usuario (GUI)

(5)

1.1.3 Software de aplicación

Es aquel que permite a los usuarios llevar a cabo una o varias

tareas específicas, en cualquier campo de actividad susceptible

de ser automatizado o asistido, con especial énfasis en los

negocios.

Aplicaciones para Control de sistemas y automatización industrial

Aplicaciones ofimáticas

Software educativo

Software empresarial

Bases de datos (puede considerarse como de sistemas)

Telecomunicaciones (p.ej. internet y toda su estructura lógica)

Videojuegos

Software médico

Software de Cálculo Numérico y simbólico.

Software de Diseño Asistido (CAD)

(6)

1.2 Algoritmo

Es una secuencia finita de pasos o instrucciones

ordenadas crono-lógicamente que describen un

método para resolver un problema específico.

Es un conjunto preescrito de instrucciones o

reglas bien definidas, ordenadas y finitas que

permite realizar una actividad mediante pasos

sucesivos que no generen dudas a quien lo

ejecute.

Dados un estado inicial y una entrada, siguiendo

los pasos sucesivos se llega a un estado final y se

obtiene una solución.

(7)

1.2.1 Ejemplo Algoritmo:

(8)

1.3 Lenguaje de Programación

Es un lenguaje artificial que puede ser usado para

controlar el comportamiento de una máquina,

especialmente una computadora. Estos se componen

de un conjunto de reglas sintácticas y semánticas

que permiten expresar instrucciones que luego

serán interpretadas y ejecutadas por el computador.

Es un conjunto limitado de palabras y símbolos que

representan procedimientos, cálculos, decisiones y

otras operaciones, como control de procesos, que

puede ejecutar una computadora.

Los lenguajes de programación pueden clasificarse

según el paradigma que usan en: procedimentales,

orientados a objetos, funcionales, lógicos, híbridos,

etc.

(9)

1.3.1 Gramática de un

lenguaje de Programación

Sintaxis de un lenguaje de programación:

estructura o forma de los programas.

Semántica de un lenguaje de programación:

relaciones entre un programa y un modelo de

computación.

Pragmática de un lenguaje de programación:

grado de éxito con el que un programa cumple

sus objetivos tanto en su fidelidad con el

modelo de computación subyacente como su

utilidad para los programadores.

(10)

1.4 Programa

Es un conjunto de instrucciones que una vez

ejecutadas realizarán una o varias tareas en

una computadora.

Es la codificación de un algoritmo en un

lenguaje de programación.

Es un conjunto de instrucciones u ordenes

basadas en un lenguaje de programación que

una computadora interpreta y ejecuta para

resolver un problema o una función

especifica.

(11)

1.5 Programación

Se refiere a la codificación e implementación de un

algoritmo en un lenguaje de programación específico

para dar solución a un problema.

Se refiere a la serie de actividades y pasos que se

abordan para crear el código fuente de un programa

informático. De acuerdo con estos pasos, el código se

escribe, se prueba y se perfecciona.

Es el proceso que se realiza para desarrollar software.

Es aquella actividad por la cual se crean programas para

computadoras, tales programas pueden ser códigos

fuentes interpretados (como por ejemplo scripts en

BASH) o códigos fuentes que serán compilados (como

por ejemplo programas en C++) hacia lenguajes binarios

y ejecutados desde el kernel del sistema operativo.

(12)

1.6 Paradigmas de programación

Un paradigma de programación es un modelo

básico de diseño y desarrollo de programas,

que permite producir programas con unas

directrices específicas, tales como: estructura

modular, fuerte cohesión, alta rentabilidad, etc.

Un paradigma de programación es una

colección de modelos conceptuales que juntos

modelan el proceso de diseño y determinan, al

final, la estructura de un programa.

(13)

1.6.1Modelo de computación imperativo

También denominado procedural

Conjunto de valores que definen un estado y la

operación de asignación de la modificación de

estado.

Un estado es un conjunto de pares

nombre-valor de las constantes y variables.

Un programa es una secuencia de asignaciones.

Una computación es una secuencia de estados.

Computación: aplicación de una secuencia de

operaciones a un valor para obtener otro

valor.

(14)
(15)

1.6.2 Modelo de computación funcional

Conjunto de valores, funciones y las operaciones de

aplicación de función y composición de función.

Las funciones pueden tomar como argumentos otras

funciones y devolverlas como resultados.

Un programa es una colección de definiciones de

funciones.

Una computación es una evaluación (aplicación) de una

expresión (función con sus argumentos).

(16)

1.6.3 Modelo de computación lógico

Conjunto de valores, definiciones de relaciones e

inferencias lógicas.

Un programa es una definición de relaciones.

Una computación es una prueba (secuencia de inferencias

lógicas)

(17)

1.6.4 Computabilidad

Los tres modelos son equivalentes cualquier

problema que tenga una solución en un modelo

es resoluble en cada uno de los otros dos.

Se

denominan

modelos

universales

de

computación.

Otros modelos también son equivalentes.

Están

mezclados

en

los

lenguajes

de

programación:

Java es imperativo, pero incorpora elementos

funcionales y lógicos.

CommonLisp es funcional, pero permite realizar

programación imperativa y lógica.

Prolog es lógico, pero admite determinadas

secuencias imperativas.

(18)

1.6.5 Programación imperativa

Modela la arquitectura de la máquina de von

Neumann.

La computación consiste en la ejecución paso a

paso de algoritmos (secuencias condicionales o

repetitivas de instrucciones) que modifican los

contenidos de variables (espacios de memoria).

Tipos:

Lenguajes

procedurales

(Pascal,

C):

utilizan

subprogramas como unidades de modularización

para definir pasos de Computación.

Lenguajes orientados a objetos (Smalltalk, C++, Java):

encapsulan en objetos tanto los datos como las

operaciones sobre los mismos Paradigmas.

(19)

Ejemplo de programación imperativa

Function member (e: real; a: lista-reales): lista-reales;

begin

if (a = nil)

then member := nil

else while ((aˆ .siguiente <> nil) and

(e <> aˆ .elemento)) do

a := aˆ .siguiente;

if e = aˆ .elemento

then member := a

else member := nil

end;

(20)

1.6.6 Programación declarativa

Utiliza bloques de construcción como las

funciones, la recursión o la equiparación de

patrones, para especificar más la solución que su

cálculo de bajo nivel.

Tipos:

Lenguajes funcionales (Common Lisp, Scheme,

Haskell): utilizan

funciones

libres

de

efectos

secundarios como bloques primitivos de construcción

de programas. Estas funciones pueden aplicarse,

construirse y pasarse como argumentos a otras

funciones.

Lenguajes lógicos (Prolog): calculan resultados

utilizando reglas e inferencias lógicas.

(21)
(22)

1.6.7 Programación Orientada a Objetos

Define la computación como la interacción entre objetos

Autónomos.

Mediante la utilización de objetos, la programación se

convierte en simulación.

Los objetos son instancias de clases que se organizan en

jerarquías de herencia.

Los objetos se comportan independientemente.

Utilizan la selección de las operaciones en tiempo de

ejecución cuando interpretan los mensajes provenientes

de otros objetos.

Ejemplos:

-Smalltalk, Eiffel, y Java son lenguajes orientados a objetos

-Muchos lenguajes actuales, como C++, Ada-95, o

Common Lisp también dan soporte a este tipo de

programación.

(23)

Ejemplo de programación

orientada a objetos

Clase: lista

Atributos: elemento, siguiente

Métodos: primero, siguiente, member, ...

Ejecución de member: mandar un mensaje

member a una instancia de la clase lista con

el argumento elemento a buscar.

(24)

1.6.8 Programación basada en módulos

Reconoce agrupaciones de variables, procedimientos

y tipos como unidades estáticas de modularidad de

programa.

El interface a un módulo (o paquete) especifica y

exporta una serie de servicios generales.

Los detalles de implementación se ocultan en una

unidad de programa compilada separadamente.

Ejemplos:

Modula-2, Ada y C++, JAVA soportan este estilo de

programación que puede ser combinada con

(25)

1.6.9 Otros paradigmas de programación

Programación visual

Programación basada en restricciones

Programación basada en tipos abstractos de datos

Programación genérica

Programación concurrente

Programación basada en componentes distribuidos

Programación basada en agentes

Programación literaria

Programación basada en patrones de diseño

Programación basada en guiones

Programación automática: aprendizaje automático

Programación orientada a eventos

(26)

1.7 Editores de Texto

Un editor de texto es un programa que permite crear y

modificar archivos digitales compuestos únicamente por

texto 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. Hoy en día es comúnmente de 7- ó 8-bits

en ASCII o UTF-8, rara vez EBCDIC.

El texto plano es representado en el editor mostrando

todos los caracteres presentes en el archivo. Los únicos

caracteres de formateo son los caracteres de control del

respectivo código de caracteres. En la práctica, estos son:

salto de línea, tabulación horizontal y retorno de carro.

(27)

1.7.1Tipos de editores de texto

Algunos son de uso general, mientras que otros están

diseñados para escribir o programar en un lenguaje.

Algunas funciones especiales son:

Editores diseñados para un lenguaje de programación

determinado, con coloreado de sintaxis, macros, completar

palabras, etc.

Editores con regiones plegables. A veces no todo el texto es

relevante para el usuario. Con este tipo de editores ciertas

regiones con texto irrelevante pueden ser plegadas,

escondidas, mostrando al usuario solo lo importante del

texto.

IDE es un editor más otras herramientas de trabajo,

compiladores, extractores de diferencias entre dos textos,

repositorios, etc, incluidos en un solo programa.

(28)

1.7.2 Algunos Editores

Emacs, otro editor muy común en Unix

Vi, editor muy común en Unix

Kate, un moderno editor para Unix

Notepad++, editor de código fuente para

Microsoft Windows

jEdit, editor popular multiplataforma

TextPad, editor popular multiplataforma

Jcreator, IDE para JAVA

Eclipse, IDE para JAVA

DEV C, IDE para lenguaje C

Visual Studio, IDE para .NET

NET BEANS, IDE para java

(29)

1.8 Clasificación de Lenguajes de programación

Por su nivel:

Alto: instrucciones semejantes a lenguaje natural

Medio

Bajo: instrucciones semejantes a lenguaje máquina

Por su traducción:

Compiladores: lee un programa escrito en un

lenguaje fuente y lo traduce a un programa

equivalente en otro lenguaje, el lenguaje objeto.

Intérpretes: un intérprete es un programa que,

como su nombre lo indica, interpreta símbolos en

un programa y los traduce a lenguaje máquina

conforme deban ser ejecutados.

(30)

1.8.1 Compiladores

Un compilador es un programa informático que

traduce un programa escrito en un lenguaje de

programación a otro lenguaje de programación,

generando un programa equivalente que la máquina

será capaz de interpretar. Usualmente el segundo

lenguaje es lenguaje de máquina, pero también puede

ser simplemente texto. Este proceso de traducción

se conoce como compilación.

Un compilador es un programa que permite traducir

el código fuente de un programa en lenguaje de alto

nivel, a otro lenguaje de nivel inferior (típicamente

lenguaje de máquina). De esta manera un

programador puede diseñar un programa en un

lenguaje mucho más cercano a como piensa un ser

humano, para luego compilarlo a un programa más

manejable por una computadora.

(31)
(32)

1.8.3 Interpretes

Intérprete es un programa informático capaz de analizar y ejecutar

simultáneamente un programa escrito en un lenguaje fuente.

Los intérpretes se diferencian de los compiladores en que mientras

estos traducen un programa desde su descripción en un lenguaje de

programación al código de máquina del sistema, los primeros (los

intérpretes) sólo realizan la traducción a medida que sea necesaria,

típicamente, instrucción por instrucción, y normalmente no guardan

el resultado de dicha traducción.

Los programas interpretados suelen ser más lentos que los

compilados debido a la necesidad de traducir el programa mientras

se ejecuta, pero a cambio son más flexibles como entornos de

programación y depuración (lo que se traduce, por ejemplo, en una

mayor facilidad para reemplazar partes enteras del programa o

añadir módulos completamente nuevos), y permiten ofrecer al

programa interpretado un entorno no dependiente de la máquina

donde se ejecuta el intérprete, sino del propio intérprete (lo que se

conoce comúnmente como máquina virtual).

(33)
(34)

1.8.5 Esquema de compilador con

interprete de código intermedio

(35)

1.9 Ejecutables

un ejecutable o archivo ejecutable, es un archivo binario cuyo

contenido se interpreta por el ordenador como un programa.

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.

suele contener llamadas a funciones específicas de un sistema

operativo (llamadas al sistema).

ejecutables portables: se pueden ejecutar en varias plataformas.

Ejecutables no portables: destinado a una plataforma concreta.

contiene mucha información que no es parte del programa en

sí: recursos como textos e imágenes, requisitos del entorno de

ejecución, información simbólica y de depuración, u otra

información que ayude al sistema operativo a ejecutar el

programa.

(36)

1.10 Consola de línea de comandos

También conocida como Interfaz de Línea de

Comandos (CLI), por su acrónimo en inglés de

Command Line Interface (CLI), es un método que

permite a las personas dar instrucciones a algún

programa informático por medio de una línea de

texto simple.

Las

CLI

pueden

emplearse

interactivamente,

escribiendo instrucciones en alguna especie de

entrada de texto, o pueden utilizarse de una forma

mucho más automatizada (batch), leyendo comandos

desde un archivo de scripts.

La contraparte de CLI es la interfaz gráfica de

(37)

1.10.1.a Comandos de Windows

AT - Planifica comandos y programas para ejecutarse en un equipo. ATTRIB - Muestra o cambia los atributos del archivo.

BREAK - Establece o elimina la comprobación extendida de Ctrl+C.

CACLS - Muestra o modifica las listas de control de acceso (ACLs) de archivos. * Atención: En la ayuda de Windows hay un error y este comando lo llaman CALCS que no existe.

CALL - Llama a un programa por lotes desde otro.

CD - Muestra el nombre del directorio actual o cambia a otro directorio. CHCP - Muestra o establece el número de página de códigos activa.

CHDIR - Muestra el nombre del directorio actual o cambia a otro directorio. CHKDSK - Comprueba un disco y muestra un informe de su estado.

CHKNTFS - Muestra o modifica la comprobación de disco al iniciar. CLS - Borra la pantalla.

CMD - Inicia una nueva instancia del intérprete de comandos de Windows.

COLOR - Establece los colores de primer plano y fondo predeterminados de la consola. COMP - Compara el contenido de dos archivos o un conjunto de archivos.

COMPACT - Muestra o cambia el estado de compresión de archivos en particiones NTFS.

CONVERT - Convierte volúmenes FAT a volúmenes NTFS. No puede convertir la unidad actual. COPY - Copia uno o más archivos a otro lugar.

DATE - Muestra o establece la fecha. DEL - Elimina uno o más archivos.

DIR - Muestra una lista de archivos y subdirectorios en un directorio. DISKCOMP - Compara el contenido de dos disquetes.

DISKCOPY - Copia el contenido de un disquete a otro.

(38)

1.10.1.b Comandos de Windows

ECHO - Muestra mensajes, o activa y desactiva el echo.

ENDLOCAL - Termina la búsqueda de variables de entorno del archivo por lotes. ERASE - Elimina uno o más archivos.

EXIT - Sale del programa CMD.EXE (interfaz de comandos).

FC - Compara dos archivos o conjunto de archivos y muestra las diferencia entre ellos. FIND - Busca una cadena de texto en uno o más archivos.

FINDSTR - Busca cadenas de texto en archivos.

FOR - Ejecuta un comando para cada archivo en un conjunto de archivos. FORMAT - Da formato a un disco para usarse con Windows.

FTYPE - Muestra o modifica los tipos de archivo utilizados en una asociació de archivos.

GOTO - Direcciona el intérprete de comandos de Windows a una línea de un programa por lotes. GRAFTABL - Permite a Windows mostrar un conjunto de caracteres extendido en modo gráfico. HELP - Proporciona información de ayuda para los comandos de Windows.

IF - Ejecuta procesos condicionales en programas por lotes.

LABEL - Crea, cambia o elimina la etiqueta del volumen de un disco. MD - Crea un directorio.

MKDIR - Crea un directorio.

MODE - Configura un dispositivo de sistema.

MORE - Muestra la información pantalla por pantalla.

MOVE - Mueve uno o más archivos de un directorio a otro en la misma unidad. PATH - Muestra o establece una ruta de búsqueda para archivos ejecutables. PAUSE - Suspende el proceso de un archivo por lotes y muestra un mensaje. POPD - Restaura el valor anterior del directorio actual guardado por PUSHD. PRINT - Imprime un archivo de texto.

(39)

1.10.1.c Comandos de Windows

PROMPT - Cambia el símbolo de comandos de Windows. PUSHD - Guarda el directorio actual y después lo cambia. RD - Elimina un directorio.

RECOVER - Recupera la información legible de un disco dañado o defectuoso. REM - Graba comentarios en archivos por lotes o CONFIG.SYS.

REN - Cambia el nombre de uno o más archivos. RENAME - Cambia el nombre de uno o más archivos. REPLACE - Reemplaza archivos.

RMDIR - Elimina un directorio.

SET - Muestra, establece o elimina variables de entorno de Windows.

SETLOCAL - Inicia la localización de cambios del entorno en un archivo por lotes. SHIFT - Cambia posición de modificadores reemplazables en archivos por lotes. SORT - Ordena las entradas.

START - Inicia otra ventana para ejecutar un programa o comando. SUBST - Asocia una ruta de acceso con una letra de unidad.

TIME - Muestra o establece la hora del sistema.

TITLE - Establece el título de la ventana de una sesión de CMD.EXE.

TREE - Muestra gráficamente la estructura de directorios de una unidad ruta de acceso. TYPE - Muestra el contenido de un archivo de texto.

VER - Muestra la versión de Windows.

VERIFY - Comunica a Windows si debe comprobar que los archivos se escribe de forma correcta en un disco.

VOL - Muestra la etiqueta del volumen y el número de serie del disco. XCOPY - Copia archivos y árboles de directorios.

(40)

1.10.2 Comandos de Linux

man: muestra el manual de commandos

ls: equivale al dir en windows (lista)

cd : cambiar directorio

mkdir : crear directorio

mv : mover archivos

rm : borrar archivos

ping : probar conexion de red

cp: copiar archivos

pwd : muestra la ruta actual

locate: buscar archivos

Referencias

Documento similar

Se estima una distancia de más de 11 millones de años luz hablando de una cantidad de sistemas solares que no tendrían espacio en nuestra mente y esto solo hablando del grupo

La Normativa de evaluación del rendimiento académico de los estudiantes y de revisión de calificaciones de la Universidad de Santiago de Compostela, aprobada por el Pleno or-

The buildings of Jose Llinas besides their formal aptitudes, in addi- tion to the quality of their materials, not to mention the perfection of their

- Un curso formativo para los técnicos de laboratorio de la UPV sobre la prevención de los residuos en los laboratorios, que se llevará a cabo los días 23, 24, 25, 26 y 27

Gastos derivados de la recaudación de los derechos económicos de la entidad local o de sus organis- mos autónomos cuando aquélla se efectúe por otras enti- dades locales o

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en

¿Cómo se traduce la incorporación de ésta en la idea de museo?; ¿Es útil un museo si no puede concebirse como un proyecto cultural colectivo?; ¿Cómo puede ayudar el procomún

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados