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).
1.1.1 Software de Sistemas Su objetivo es desvincular adecuadamente al usuario y al
programador de los detalles de la computadora enparticular que se use, aislándolo especialmente delprocesamiento referido a las características internas de:memoria, discos, puertos y dispositivos decomunicaciones, impresoras, pantallas, teclados, etc. Elsoftware de sistema le procura al usuario yprogramador adecuadas interfaces de alto nivel,herramientas y utilidades de apoyo que permiten sumantenimiento.
Sistemas operativos
Controladores de dispositivos
Herramientas de diagnóstico
Herramientas de Corrección y Optimización
Servidores
Utilidades
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)
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 susceptiblede ser automatizado o asistido, con especial énfasis en losnegocios.
◦ 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)
◦ Software de Control Numérico (CAM)
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.
1.2.1 Ejemplo Algoritmo:
Algoritmo cotidiano Algoritmo raíz cuadrada
1.3 Lenguaje de Programación
Es un lenguaje artificial que puede ser usado paracontrolar el comportamiento de una máquina,especialmente una computadora. Estos se componende un conjunto de reglas sintácticas y semánticasque permiten expresar instrucciones que luegoserán interpretadas y ejecutadas por el computador.
Es un conjunto limitado de palabras y símbolos querepresentan procedimientos, cálculos, decisiones yotras operaciones, como control de procesos, quepuede ejecutar una computadora.
Los lenguajes de programación pueden clasificarsesegún el paradigma que usan en: procedimentales,orientados a objetos, funcionales, lógicos, híbridos,etc.
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 decomputación.
Pragmática de un lenguaje de programación:grado de éxito con el que un programa cumplesus objetivos tanto en su fidelidad con elmodelo de computación subyacente como suutilidad para los programadores.
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.
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.
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.
1.6.1Modelo de computación imperativo También denominado procedural
Conjunto de valores que definen un estado y laoperación de asignación de la modificación deestado.
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 deoperaciones a un valor para obtener otrovalor.
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).
Ejemplo:
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)
Ejemplo:
1.6.4 Computabilidad Los tres modelos son equivalentes cualquier
problema que tenga una solución en un modeloes resoluble en cada uno de los otros dos.
Se denominan modelos universales decomputación.
Otros modelos también son equivalentes.
Están mezclados en los lenguajes deprogramació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 determinadassecuencias imperativas.
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 apaso de algoritmos (secuencias condicionales orepetitivas de instrucciones) que modifican loscontenidos de variables (espacios de memoria).
Tipos:◦ Lenguajes procedurales (Pascal, C): utilizan
subprogramas como unidades de modularizaciónpara definir pasos de Computación.
◦ Lenguajes orientados a objetos (Smalltalk, C++, Java):encapsulan en objetos tanto los datos como lasoperaciones sobre los mismos Paradigmas.
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;
1.6.6 Programación declarativa
Utiliza bloques de construcción como lasfunciones, la recursión o la equiparación depatrones, para especificar más la solución que sucálculo de bajo nivel.
Tipos:◦ Lenguajes funcionales (Common Lisp, Scheme,
Haskell): utilizan funciones libres de efectossecundarios como bloques primitivos de construcciónde programas. Estas funciones pueden aplicarse,construirse y pasarse como argumentos a otrasfunciones.
◦ Lenguajes lógicos (Prolog): calculan resultadosutilizando reglas e inferencias lógicas.
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 seconvierte en simulación.
Los objetos son instancias de clases que se organizan enjerarquías de herencia.
Los objetos se comportan independientemente.
Utilizan la selección de las operaciones en tiempo deejecución cuando interpretan los mensajes provenientesde otros objetos.
Ejemplos:
-Smalltalk, Eiffel, y Java son lenguajes orientados a objetos-Muchos lenguajes actuales, como C++, Ada-95, oCommon Lisp también dan soporte a este tipo deprogramación.
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.
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 cualquier otro tipo de paradigma.
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
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.
1.7.1Tipos de editores de texto
Algunos son de uso general, mientras que otros estándiseñ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, completarpalabras, etc.
◦ Editores con regiones plegables. A veces no todo el texto esrelevante para el usuario. Con este tipo de editores ciertasregiones con texto irrelevante pueden ser plegadas,escondidas, mostrando al usuario solo lo importante deltexto.
◦ IDE es un editor más otras herramientas de trabajo,compiladores, extractores de diferencias entre dos textos,repositorios, etc, incluidos en un solo programa.
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
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 programaequivalente en otro lenguaje, el lenguaje objeto.
Intérpretes: un intérprete es un programa que,como su nombre lo indica, interpreta símbolos enun programa y los traduce a lenguaje máquinaconforme deban ser ejecutados.
1.8.1 Compiladores Un compilador es un programa informático que
traduce un programa escrito en un lenguaje deprogramación a otro lenguaje de programación,generando un programa equivalente que la máquinaserá capaz de interpretar. Usualmente el segundolenguaje es lenguaje de máquina, pero también puedeser simplemente texto. Este proceso de traducciónse conoce como compilación.
Un compilador es un programa que permite traducirel código fuente de un programa en lenguaje de altonivel, a otro lenguaje de nivel inferior (típicamentelenguaje de máquina). De esta manera unprogramador puede diseñar un programa en unlenguaje mucho más cercano a como piensa un serhumano, para luego compilarlo a un programa másmanejable por una computadora.
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).
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.
1.10 Consola de línea de comandos
También conocida como Interfaz de Línea deComandos (CLI), por su acrónimo en inglés deCommand Line Interface (CLI), es un método quepermite a las personas dar instrucciones a algúnprograma informático por medio de una línea detexto simple.
Las CLI pueden emplearse interactivamente,escribiendo instrucciones en alguna especie deentrada de texto, o pueden utilizarse de una formamucho más automatizada (batch), leyendo comandosdesde un archivo de scripts.
La contraparte de CLI es la interfaz gráfica deusuario (GUI)
1.10.1.a Comandos de WindowsAT - 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.
DOSKEY - Edita líneas de comando, memoriza comandos y crea macros.
1.10.1.b Comandos de WindowsECHO - 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.
1.10.1.c Comandos de WindowsPROMPT - 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.
Top Related