Así, de la palabra algoritmo, que originalmente hacía referencia a las reglas de uso de la aritmética utilizando dígitos árabes, se evolucionó a la palabra latina, derivación de al-Khwarizmi, algobarismus, que más tarde mutaría a algoritmo en el siglo XVIII. La palabra ha cambiado de forma que en su definición se incluye a todos los procedimientos finitos para resolver problemas.
El primer caso de una algoritmo escrito para una computadora se considera que son las notas escritas por Ada Byron en 1842 para el motor analítico de Charles Babbage. Por esta razón, se considera a Ada Byron como la primera programadora de la historia. Sin embargo, dado que Babbage nunca terminó su motor analítico, el algoritmo jamás llegó a implementarse.
1. Definición:
Es el conjunto de reglas, símbolos y palabras especiales para la creación del software que permitirá la comunicación entre el usuario y la computadora.
2. Clasificación:
2.1. Según la proximidad al lenguaje humano.
2.1.1. Lenguaje máquina: es el lenguaje que entiende la máquina, sus instrucciones son cadenas binarias (ceros y unos por ejemplo: 0100011010011101...) que especifican una operación. Estas instrucciones dependen del hardware de la computadora por lo tanto el lenguaje maquina de un sistema HP (Hewlett-Packard) es diferente al de una Dell, Compaq, etcétera.
Ventajas:
Se utilizan los recursos de la máquina.
Los programas se ejecutan con mayor velocidad.
Disminuye el uso de memoria.
Desventajas:
Muy difícil de aprender y entender.
Dependiente del procesador, es decir que los códigos son diferentes dependiendo la arquitectura del procesador (ejemplo x86).
2.1.2. Lenguajes de bajo nivel: en este lenguaje se reemplaza las cadenas binarias por palabras conocidas como nemotecnias. El lenguaje por excelencia es el Ensamblador, este lenguaje es directamente traducible al Lenguaje de Máquina, y viceversa; simplemente, es un reemplazo de cadenas que facilita el uso para los programadores. Por otro lado, la computadora no entiende directamente al Lenguaje Ensamblador; es necesario traducirle a Lenguaje de Máquina.
Ventajas:
Se utilizan los recursos de la máquina.
Los programas se ejecutan con mayor velocidad.
Disminuye el uso de memoria.
Desventajas:
Muy difícil de aprender y entender.
Dependiente del procesador.
Ejemplo de hola mundo para procesador x86 (bajo el sistema operativo DOS):

2.1.3. Lenguaje de alto nivel: los lenguajes de alto nivel son habitualmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés.
Ventajas:
Fácil uso (en comparación con los lenguajes anteriormente mencionados).
Basados en reglas sintácticas similares al lenguaje humano.
Desventajas
No se aprovechan los recursos internos de la máquina.
Aumenta el uso de la memoria.
Tiempo de ejecución es más lento.
Ejemplos del clásico "hola mundo" en diferentes lenguajes de programación:




2.2. Según el paradigma de programación:
2.2.1. Lenguajes imperativos: son lenguajes controlados por mandatos u orientados a enunciados (instrucciones). Es decir los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea.
Ejemplos de lenguajes imperativos:
ASP
BASIC
C
C#
C++
Fortran
Pascal
Java
Perl
PHP
Lua
2.2.2 Lenguajes funcionales: es el lenguaje basado a crear programas para la utilización de funciones matemáticas.
Ejemplos de lenguajes funcionales:
Haskell
Miranda
Scala
Lisp
Scheme
Ocaml
SAP
2.2.3. Lenguajes Lógicos: es un lenguaje de programación lógico e interpretado, bastante conocido en el medio de investigación en Inteligencia Artificial.
La programación lógica encuentra en aplicaciones de inteligencias artificiales o relacionadas:
Cuando un programa es capaz de recomendar tareas de acuerdo a lo realizado por el usuario.
Es capaz de comprender (con limitaciones) la información contenida en una expresión lingüística humana.
El lenguaje lógico por excelencia es el Prolog.
2.2.4. Lenguajes orientados a objetos: se está convirtiendo en un modelo de computación cada vez más importante. Pues la creciente tendencia de crear programas cada vez más grandes y complejos llevó a los desarrolladores a crear una nueva forma de programar que les permita crear sistemas de niveles empresariales y con reglas de negocios muy complejas. Es así como aparece la programación orientada a objetos (POO). La POO viene de la evolución de la programación estructurada. La POO se basa en la división del programa en pequeñas unidades lógicas de código. A estas pequeñas unidades lógicas de código se les llama objetos. Los objetos son unidades independientes que se comunican entre ellos mediante mensajes. Ejemplo:

Ejemplos de lenguajes orientados a objetos:
Ada
C++
C#
Clarion
D
Gambas
Java
JavaScript
Perl
Python
Ruby
Smalltalk
VB.NET
1. Definición:
Es el conjunto de instrucciones específicas que debe realizar el hardware, es decir que el software es medio de comunicación entre la persona y la máquina, claro está que el software se comunica con un lenguaje humano hacia el usuario y a la máquina (en este caso la computadora) mediante un lenguaje máquina. Otros autores desde otro punto de vista lo definen como la parte lógica de la computadora.
2. Clasificación:
2.1. Según fines prácticos:
2.1.1. Software de sistema
Es el conjunto de programas indispensables para que la computadora funcione, son básicamente sistemas operativos, editores de texto, los compiladores/intérpretes y programas de utilidad.
A) Sistema operativo: es el programa (o software) más importante de la computadora. Para que funcionen los otros programas. Realizan tareas básicas, tales como reconocimiento de la conexión del teclado, enviar la información a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos periféricos tales como impresoras, escáner, etcétera.
Principales sistemas operativos:
Windows:
Windows XP (2001)
Windows Vista (2007)
Windows 7 (2009)
Distribuciones Linux:
Ubuntu
Red Hat
Fedora
Debian
Apple:
Mac OS X Leopard
B) Compiladores: Un compilador toma un texto (código fuente) escrito en un lenguaje de alto nivel y lo traduce a un lenguaje comprensible por las computadoras (código objeto).
C) Intérprete: un programa de computadora que ejecuta o lleva a cabo instrucciones escritas en un lenguaje de programación. Uno de los más conocidos es Java el cual permite que un programa creado con el lenguaje Java puede correr en distintos sistemas operativos, siempre que este tenga soporte a Java.
D) Controlador de dispositivo (en inglés "device driver"): es un programa que permite al sistema operativo interactuar con un periférico es decir permiten uso a dispositivos independientes del CPU, los principales son monitor, teclado, mouse, impresora, algunos controladores vienen con el sistema operativo el cual ya no necesitará de un controlador.
2.1.2. Software de programación: es el conjunto de herramientas que permiten al programador desarrollar programas informáticos. Los principales son los compiladores y lo intérpretes.
2.1.3. Software de aplicación: es aquel software que realiza tareas específicas, estos son muchos: procesadores de texto, dibujo vectorial, quemadores de CD/DVD, navegadores de internet, reproductores de música, etcétera.
2.2. Según la licencia:
Licencia: es el contrato entre el desarrollador de un software y el usuario, y este último se somete a derechos de autor.
Patente: conjunto de derechos exclusivos garantizados por un gobierno o autoridad al inventor de un nuevo producto.
Derechos de autor o copyright: forma de protección proporcionada por las leyes vigentes en la mayoría de los países para los autores de obras originales incluyendo obras literarias, dramáticas, musicales, artísticas e intelectuales, tanto publicadas como pendientes de publicar.
2.2.1. Software propietario: aquél cuyo uso, redistribución o modificación están prohibidos o necesitan una autorización.
Ejemplos conocidos Windows, Mac OS X, etcétera.
2.2.2. Software shareware o de evaluación: software con autorización de redistribuir copias, pero debe pagarse cargo por licencia de uso continuado, es decir que sólo puede ser usado por un tiempo suelen dar un mes de uso.
Ejemplos:
TuneUp Utilities 2009.
Aone Ultra Video Converter.
Xilisoft Video Converter Ultimate.
2.2.3. Software de demostración: es una parte del software completo, que es de libre distribución sólo para que el usuario tenga la idea de cómo trabaja el software. Este software es frecuentemente utilizado en juegos. Generalmente a nombre del software se le agrega sufijo "lite" o "demo"
Ejemplo:
Nero 7 Demo.
2.2.4. Software libre:
Este software ofrece libertad en:
Ejecutar el programa, para cualquier propósito.
Estudiar el funcionamiento del programa, y adaptarlo a sus necesidades.
Redistribuir copias.
Mejorar el programa, y poner sus mejoras a disposición del público, para beneficio de toda la comunidad
Ejemplos:
Las distribuciones de Linux: Ubuntu, Fedora, Ret Hat, Debian, Goobuntu, etc.
Navegador web: Mozilla Firefox, Google Chrome.
Dibujo vectorial: Inskape
Ofimática: Open office, Abiword, etc.
Antivirus: ClamWin
Mensajería instantánea: aMSN, Emesene, Pidgin, etc.
Reproductores de música: Songbird, aTunes, etc.
Grabadores de CD/DVD: Infra Recorder
2.2.5. Software de dominio público: aquél que no está protegido con copyright.
Ejemplo:
Software libre y software anónimo.
2.2.6. Software semi-libre: aquél que no es libre, pero viene con autorización de usar, copiar, distribuir y modificar para particulares sin fines de lucro.
Ejemplos… software educativo
2.2.7. Software freeware: se usa comúnmente para programas que permiten la redistribución pero no la modificación (y su código fuente no está disponible). En ocasiones estos software hacen publicidad a algún producto y otros software.
Ejemplos:
Antivirus: AVG antivirus free, Avast! home, etcétera.
Navegador web: Internet Explorer
Mensajería instantánea: Windows live messenger
Reproductores de música: Aimp, Real Player Basic, iTunes, etcétera.
Grabadores de CD/DVD: CDBurnerXP Pro
3. Mantenimiento del software
Es el proceso de mejora y optimización del software y también corrección de sus defectos.
Tipos de mantenimiento:
Perfectivo: son las acciones llevadas a cabo para mejorar la calidad interna de los sistemas en cualquiera de sus aspectos: reestructuración del código, definición más clara del sistema y optimización del rendimiento y eficiencia.
Evolutivo: son las incorporaciones, modificaciones y eliminaciones necesarias en un producto software para cubrir la expansión o cambio en las necesidades del usuario.
Adaptativo: son las modificaciones que afectan a los entornos en los que el sistema opera, por ejemplo, cambios de configuración del hardware, software de base, gestores de base de datos, comunicaciones, etc.
Correctivo: son aquellos cambios precisos para corregir errores del producto software.
4. Malware
4.1. Definición.
Malware significa software malicioso o malintencionado, es un software que tiene como objetivo infiltrarse en el sistema y dañar la computadora sin el conocimiento de su dueño, con finalidades muy diversas.
Este término es muy utilizado por profesionales en computación pero la gran mayoría de personas es conocido como "virus informático", el cual éste es una variante del malware.
4.2. Historia.
El primer virus que atacó a una máquina IBM Serie 360 fue llamado Creeper, creado en 1972. Este programa emitía periódicamente en la pantalla el mensaje: "I'm a creeper... catch me if you can!" (Soy una enredadera, agárrenme si pueden). Para eliminar este problema se creó el primer programa antivirus denominado Reaper (cortadora).
El término de virus se adoptó en 1984, pero éstos ya existían desde antes. Sus inicios fueron en los laboratorios de Bell Computers. Cuatro programadores (H. Douglas Mellory, Robert Morris, Victor Vysottsky y Ken Thompson) desarrollaron un juego llamado Core Wars, el cual consistía en ocupar toda la memoria RAM del equipo contrario en el menor tiempo posible.
Después de 1984, los virus han tenido una gran expansión, desde los que atacan los sectores de arranque de disquetes hasta los que se adjuntan en un correo electrónico.
4.3. Tipos.
Existen muchos, lo más comunes son:
4.3.1. Virus informático: consiste en alterar el normal funcionamiento de la computadora, sin el permiso del usuario y otros sólo ocasionar molestias.
Los virus informáticos se propagar a través del software, cuando se ejecuta el software el virus se aloja en la memoria RAM y empieza a ocasionar daños a los servicios del sistema operativo y a otros archivos ejecutables.
4.3.2. Gusano informático: tienen la facultad de duplicarse así mismo, su funcionamiento consiste en alojarse en la memoria RAM, donde éste se duplicará sucesivamente y consumirá bastantes recursos del sistema hasta llegar al punto de que el sistema sea demasiado lento.
El método de propagación de los gusanos es basado en internet.
4.3.3. Troyano (Caballo de Troya): su función principal es alojarse en las computadoras, para permitir el acceso a usuarios externos mediante una red loca o de internet. El finalidad del troyano es según el usuario externo, ya que él tendrá el control total sobre la computadora donde esté alojado el troyano.
4.3.4. Spyware (programa espía): su función es recopilar información sobre el usuario y distribuirlo a empresas publicitarias u otras organizaciones interesadas.
La información recopilada sobre el usuario suele ser: los mensajes, contactos y la clave del correo electrónico; datos sobre la conexión a Internet, como la dirección IP, el DNS, el teléfono y el país, direcciones web visitadas, tiempo durante el cual el usuario se mantiene en dichas web y número de veces que el usuario visita cada web, software que se encuentra instalado, descargas realizadas, y cualquier tipo de información intercambiada, como por ejemplo en formularios, con sitios web, incluyendo números de tarjeta de crédito y cuentas de banco, contraseñas, etcétera.
Worm, troyano… paralelo entre ellos, los mas actuales, y que ha cen en una pc.
4.4. Métodos de propagación.
Los más frecuentes son:
Mensajes que ejecutan automáticamente programas (como el programa de correo que abre directamente un archivo adjunto).
Ingeniería social, mensajes como ejecute este programa y gane un premio.
Entrada de información en discos de otros usuarios infectados.
Instalación de software pirata.
4.5. Métodos de protección.
Usar sistemas operativos más seguros que Windows como Linux, Mac OS o FreeBSD.
Utilizar una cuenta de usuario con pocos privilegios (no administrador) en su equipo, solo utilizar la cuenta de administrador cuándo se deba cambiar una configuración o instalar un software de confianza.
Cada vez que se transfiera un archivo desde o hacia Internet se debe tener la precaución de revisarlo contra malware.
Se debe comprobar todos y cada uno de los medios de almacenamiento como CDs, DVD, Blu-ray, tarjetas de memoria (SD, MMC,…), memorias USB, que se introduzcan en el ordenador.
Comprobar los archivos comprimidos (ZIP, RAR, ACE, CAB, 7z,…)
No instalar programas de dudoso origen.
Evitar navegar por sitios potencialmente dañinos buscando cosas como "pornografía", "programas gratis", "mp3 gratis", claves, licencias o crack para los programas comerciales.
Evita descargar programas, archivos comprimidos o ejecutables, desde redes peer-to-peer (P2P) ya que no se sabe el real contenido de la descarga.
Crear una contraseña de alta seguridad.
Mantener actualizado el sistema operativo que use.
Tener un programa antivirus y un firewall (también llamados cortafuegos) instalados en el ordenador, un anti-espías como SpywareBlaster, Spybot - Search & Destroy, y un filtrador de IP' maliciosas como el PeerGuardian.
También es importante tener actualizados estos programas anteriormente mencionados ya que cada día aparecen nuevas amenazas.
Desactivar la interpretación de Visual Basic VBS y permitir JavaScript JS, ActiveX y cookies sólo en páginas web de confianza.
El software puede adquirir cualquier finalidad que el programador tenga, visto en el capítulo tres, pueden ser útiles y otras destructivas (malware).
Los lenguajes de programación que se usan actualmente son los de alto nivel ya que tiene muchas ventajas frente al lenguaje de bajo nivel y máquina, y la principal es la portabilidad, es decir, que el programa creado es independiente del procesador.
El software libre tiene muchas ventajas al software propietario, ya que el software libre proporciona su código donde está expuesta a miles de programados de cualquier parte del mundo que pueden dar un aporte para complementar el software y cada vez hacerlo más sofisticado, con la única finalidad de brindar el mejor software para todos.
Para evitar las infecciones por software mal intencionado es necesario estar informado sobre el tema para no caer en trampas por otras personas y utilizar software de protección (antivirus).
Joyanes, L. Aguilar fundamentos de programación, algoritmos, estructura de datos y objetos, Concepción Fernández Madrid, tercera edición, 2003.
Criado, M. Programación en lenguajes estructurados, ra-ma Madrid, 2006.
Joyanes, L.; Zahonero, I. Algoritmos y estructuras de datos una perspectiva en C, 2004.
Hernández, R.; Lázaro, J.C.; Dormido, R.; Ros, S. Estructuras de datos y algoritmos, Pearson Educación, 2001.
Aho. A.; Hopcroft, J.; Ullman. J. Estructuras de datos y algoritmos, Addison-Wesley, 1988.
Gómez, R. Tipos de licencia de software, 2005. Recuperado el 14 de abril del 2009, en
Diccionario informático. Recuperado el 30 de abril del 2009, de http://www.alegsa.com.ar/
Enciclopedia libre. Programación, Recuperado el 31 de abril del 2009, de http://es.wikipedia.org/.
Sistema operativo GNU. Recuperado el 02 de mayo del 2009, de http://www.gnu.org/philosophy/free-sw.es.html
Catálogo de Software Freeware. Recuperado el 15 de mayo del 2009, de http://www.cdlibre.org/consultar/catalogo/
Lenguajes de programación ejemplos "hola mundo". Recuperado el 26 de mayo del 2009, de http://www.roesler-ac.de/wolfram/hello.htm
DEDICATORIA
Este trabajo se lo dedico a mis padres que con su esfuerzo y dedicación me inspiran a mejorar cada día.
Autor:
Edward Basilio Cacho Casas
FACULDAD DE INGENIERÍA
ESCUELA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN
Chiclayo, 28 de mayo de 2009
Página anterior | ![]() Volver al principio del trabajo | Página siguiente ![]() |
Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.
Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.
Ingrese el e-mail y contraseña con el que está registrado en Monografias.com
|
|