Download CopiaD08 - GEOCITIES.ws

Document related concepts

MATLAB wikipedia , lookup

Turbo Pascal wikipedia , lookup

GFA BASIC wikipedia , lookup

Kylix (entorno de desarrollo) wikipedia , lookup

Microsoft .NET wikipedia , lookup

Transcript
Software
La definición más formal de software es la atribuida a la IEEE (The
Institute of Electrical and Electronics Engineers) en su estándar 729: “la
suma total de los programas de cómputo, procedimientos, reglas
documentación y datos asociados que forman parte de las operaciones
de un sistema de cómputo”.
Bajo esta definición, el concepto de software va más allá de los
programas de cómputo en sus distintas formas: código fuente, binario
o ejecutable, además de su documentación: es decir, todo lo intangible.
Si bien esta distinción es, en cierto modo, arbitraria, y, a veces, difusa y
confusa, se puede distinguir al software de la siguiente forma:
• Software de sistema
• Software de programación
• Software de aplicación
Software de sistema
Software de sistema, es la parte que permite funcionar al hardware. Su
objetivo es aislar tanto como sea posible al programador de
aplicaciones de los detalles del computador particular que se use,
especialmente de las características físicas de la memoria, dispositivos
de comunicaciones, impresoras, pantallas, teclados, etcétera.
Incluye entre otros:
• Sistemas operativos
• Controladores de dispositivo
• Herramientas de diagnóstico
• Servidores
• Sistemas de ventanas
• Utilidades
Sistemas Operativos
Actualmente el concepto de computadora esta intrínsecamente
relacionado al de sistema operativo, aunque éste existe en más
aparatos electrónicos aparte de en los ordenadores.
En las primeras generación de computadoras sólo se realizaba
proceso en serie, no existían los sistemas operativos, y los
programadores debían interactuar con el hardware del computador sin
ayuda externa.
La Edvac: Electronic Discrete Variable Automatic Computer (1952) se
programaba enchufando centenares de clavijas y activando un
pequeño número de interruptores. Cuando había que resolver un
problema distinto era necesario cambiar todas las conexiones. Para
utilizar la computadora debía hacerse por turnos. Todo se hacia en
lenguaje de máquina
Sistemas Operativos
La comunicación entre la Computadora (máquina basada en la
electrónica) y el ser humano no ha sido fácil.
Los primeros diseñadores y creadores de las computadoras se dieron
cuenta que necesitaban algo que permitiera la fácil comunicación de
las instrucciones, y la comprensión de los resultados obtenidos.
Así nació el Sistema Operativo: programa básico que se carga al
momento de encender la máquina y sirve de intérprete entre el frío
lenguaje de la maquina electrónica y el complejo idioma humano.
Los sistemas operativos hacen una aparición discreta y bastante
simple, con conceptos tales como el monitor residente, el proceso por
lotes y el almacenamiento temporal .
• Monitor residente, se limitaba a cargar los programas a
memoria, leyéndolos de una cinta o de tarjetas perforadas, y
ejecutarlos.
Sistemas Operativos
•
Procesamiento por lotes, para optimizar el tiempo de cargas
surgió la idea de agrupar los trabajos en lotes, en una misma cinta
o conjunto de tarjetas, de forma que se ejecutaran uno a
continuación de otro sin perder apenas tiempo en la transición.
•
Almacenamiento temporal, Su objetivo era disminuir el tiempo de
carga de los programas, haciendo simultánea la carga del
programa o la salida de datos con la ejecución de la siguiente
tarea. Para ello se utilizaban dos técnicas, el buffering y el
spooling.
En la actualidad existen varios sistemas operativos para diferentes
necesidades y tipos de computadoras, entre los más conocidos y
utilizados actualmente se encuentran los siguientes:
•
MS-DOS (Microsoft - Disk Operating System). El sistema
operativo con cual hemos estado más familiarizados desde la
aparición de las Computadoras Personales y sobre el cuál
trabajan o trabajaban la mayoría de los programas.
Sistemas Operativos
• OS/2 WARP (Diseñado por IBM), es el competidor más cercano
de MS-DOS sobre todo por sus grandes capacidades de
interconexión de equipos y facilidad de uso bajo ambiente
gráfico.
• NETWARE (Diseñado por Novell), líder mundial en sistemas
operativos para redes de computadoras por su extremada
capacidad de interconectar computadoras y recursos de muy
variadas capacidades y marcas.
• UNIX, sistema operativo de alto rendimiento utilizado
actualmente en grandes proyectos y para necesidades de
intercomunicación a nivel internacional y de gran volumen de
operaciones diarias.
En resumen, podemos afirmar que ninguna computadora obedecerá
las instrucciones de ningún programa independientemente de su
utilidad sin haber cargado en su memoria dicho intérprete al momento
de encenderse, ya que de esto dependerá su funcionamiento y
eficiencia.
Software de programación
En sus orígenes la programación de las computadoras era hecha sólo,
para y por los mismos científicos que las construían con propósitos
específicos:
El cálculo de la trayectoria de los proyectiles usados en la II Guerra
Mundial, y posteriormente, para usos muy parecidos,
Mucho después, la computadora fue utilizada, con éxito, en el Censo
de los Estados Unidos, reconociéndose así su valor en el campo
administrativo
Con la aparición de la Computadora Personal el uso pasó al dominio
público, donde, con tantas necesidades, fueron surgiendo las
aplicaciones diversas para cada oficio.
Software de programación
Software de programación, que proporciona herramientas para ayudar
al programador a escribir programas informáticos y a usar diferentes
lenguajes de programación de forma práctica.
Incluye entre otros:
• Editores de texto
• Compiladores
• Intérpretes
• Enlazadores
• Depuradores
Los entornos integrados de desarrollo (IDE) agrupan estas
herramientas de forma que el programador no necesite introducir
múltiples comandos para compilar, interpretar, depurar, etcétera,
gracias a que habitualmente cuentan con una interfaz gráfica de
usuario (GUI) avanzada.
Software de aplicación
Software de aplicación, que permite a los usuarios llevar a cabo una o
varias tareas más específicas, en cualquier campo de actividad
susceptible de ser automatizado o asistido, con especial énfasis en los
negocios.
Incluye entre otros:
• Aplicaciones de automatización industrial
• Aplicaciones ofimáticas
• Software educativo
• Software médico
• Bases de datos
• Videojuegos
¿PARA TU CARRERA CUALES SE USAN?
Formas del software
El software adopta varias formas en distintos momentos de su ciclo de
vida:
Código fuente: escrito por programadores. Contiene el conjunto de
instrucciones destinadas a la computadora.
Código objeto: resultado del uso de un compilador sobre el código
fuente. Consiste en una traducción de éste último.
• El código objeto no es directamente inteligible por el ser
humano, pero tampoco es directamente entendible por la
computadora. Se trata de una representación intermedia del
código fuente.
Código ejecutable: resultado de enlazar uno o varios fragmentos de
código objeto. Constituye un archivo binario con un formato tal que el
sistema operativo es capaz de cargarlo en la memoria de una
computadora, y proceder a su ejecución.
• El código ejecutable es directamente inteligible por la
computadora
Lenguaje de Programación
Un lenguaje de programación es utilizado para controlar el
comportamiento de una máquina, particularmente una computadora.
Consiste en un conjunto de reglas que definen su estructura y el
significado de sus elementos
Un lenguaje de programación permite a un programador especificar de
manera precisa: sobre qué datos una computadora debe operar, cómo
deben ser estos almacenados y transmitidos y qué acciones debe
tomar bajo una variada gama de circunstancias.
Los procesadores usados en las computadoras son capaces de
entender y actuar según lo indican programas escritos en un lenguaje
fijo llamado lenguaje de máquina.
LENGUAJE DE PROGRAMACIÓN
Todo programa escrito en otro lenguaje puede ser ejecutado de dos
maneras:
• Mediante un programa que va adaptando las instrucciones
conforme son encontradas. A este proceso se lo llama interpetar
y a los programas que lo hacen se los conoce como intérpretes.
• Traduciendo este programa al programa equivalente escrito en
lenguaje de máquina. A ese proceso se lo llama compilar y al
traductor se lo conoce como compilador.
Algunos lenguajes de programación
ABAP
ABC
Ada
ActionScript
Afnix
ALGOL
APL
ASP
ASP.NET
AWK
B
BASIC
BCPL
Befunge
Boo
C
C++
C#
Caml
Clipper
CLIPS
CLU
COBOL
CORAL
D
Delphi
DIV
Dylan
Eiffel
Erlang
Ensamblador
Extended ML
Euphoria
Fénix
Flow-Matic
Forth
FORTRAN
Gambas
GML
GRAFCET
FP
Haskell
Icon
Inform
INTERCAL
ISWIM
J
Java
JavaScript
Joy
KWC
LADDER
Letra
Lexico
Lingo
Lisp
Logo
Lua
MAGIC
Mainsail
Mesa
Miranda
ML
Modula
Modula-2
Modula-3
Natural
NetREXX
Oberon
Object REXX
Objective-C
Ocaml
Occam
Oz
Pascal
Parlog
Perl
PHP
PL/1
Plankalkül
PostScript
PowerBuilder
Prolog
Python
Rapid
REXX
RPN
RPG
Ruby
Sail
Sather
Scheme
Scriptol
Seed7
Self
Sh
Simula
Smalltalk
Snobol
SPARK
Squeak
SR
Standard ML
TI-Basic
TCL
VBA
Visual Basic
Visual C++
Visual
DialogScript
Visual Foxpro
Yurix
ZPL
Algunos libros de lenguajes de programación
Entorno de Desarrollo Integrado (IDE)
Un entorno de desarrollo integrado o en inglés Integrated Development
Environment ('IDE') es un programa compuesto por un conjunto de
herramientas para un programador.
Un IDE es un entorno de programación que ha sido empaquetado
como un programa de aplicación, es decir, consiste en un editor de
código, un compilador, un depurador y un constructor de interfaz
gráfica GUI. Los IDEs pueden ser aplicaciones por si solas o pueden
ser parte de aplicaciones existentes.
Puede dedicarse en exclusiva a un sólo lenguaje de programación o
bien, poder utilizarse para varios.
El lenguaje Visual Basic por ejemplo puede ser usado dentro de las
aplicaciones de Microsoft Office, lo que hace posible escribir
sentencias Visual Basic en forma de macros para Microsoft Word.
Entorno de Desarrollo Integrado (IDE)
Componentes:
• Un compilador.
• Un intérprete.
• Herramientas de
automatización.
• Un depurador.
• Posibilidad de
ofrecer un sistema
de control de
versiones.
• Factibilidad para
ayudar en la
construcción de
interfaces gráficas
de usuarios.
Dev C++, un IDE para el lenguaje de
programación C++.
Ejemplos DE IDEs
Emacs
Anjuta (GTK, pensado para
escritorio GNOME)
C++Builder y TurboC++ Explorer
de Borland (ahora de CodeGear)
Clarion
Code::Blocks
CodeWarrior
Delphi y Turbo Delphi de
Borland(ahora de
CodeGear)
DevCpp y wxDev-C++
Dr.Java
e-Des
Eclipse
GPS para Ada
IntelliJ IDEA
JBuilder de Borland (ahora
de CodeGear)
JDeveloper de
Oracle_Corporation
JCreator
KDevelop (QT, pensado
para escritorio KDE)
Lazarus
MPLAB de Microchip
MS Visual Studio .NET y
Visual Studio Express de
Microsoft
MonoDevelop
NetBeans
PowerBuilder de Sybase
RadRails para Ruby on Rails
RHIDE para DJGPP
#develop
Turbo C y Turbo C++ de Borland
Turbo Pascal de Borland
Watcom C/C++ Compiler y
OpenWatcom
Xcode de Apple
WinDev de PC SOFT