AQUELLS TEMPS 1979-80 IBM360 – Facultat de Matemàtiques de la Universitat de Barcelona.
Programació amb FORTRAN IV i targetes perforades.
A partir de 1981. VAX 785 -Facultat de Ciències (Informàtica) de la Universitat Autònoma de Barcelona.
Programació en PASCAL Desde 1987. VAX 750/785 i altres – Carburos Metàlicos S.A. Programació en COBOL, MUMPS i Powerhouse 4GL Arribada de MACINTOSH-1989 (sense disc dur, però pantalla gràfica)
History of computers during 1980 to 1990
http://www.computerhope.com/history/198090.htm
Computer history - 1980 - 1990 Year
1 de 13
Event
1980
On January 3, Hewlett Packard introduces its HP-85. A microcomputer with 16kB of RAM and a 5-inch CRT display.
1980
IBM introduces RISC.
1980
IBM hires Paul Allen and Bill Gates to create an operating system for a new PC. The pair buy the rights to a simple operating system manufactured by Seattle Computer Products and use it as a template. IBM allows the two to keep the marketing rights to the operating system, called DOS.
1980
IBM hires Microsoft to develop versions of BASIC, FORTRAN, COBOL, and Pascal for the PC being developed by IBM.
1980
Microsoft licenses Unix and starts to develop a PC version, XENIX.
1980
The programming language FORTRAN 77 is created.
1980
The first Tandy Color computer is introduced.
1980
AST is founded.
1980
Atari becomes the first company to register a Copyright for two computer games "Asteroids" and "Lunar Landar" on June 17, 1980.
1980
FIC is founded.
1980
Iomega is established.
1980
Quantum is founded.
1980
ARPANET experiences first major network crash causing it to go down for four hours October 27, 1980.
1981
Jeff Dailey, a 19-year old becomes the first person to die from computer gaming after dying from a heart attack after posting a score of 16,660 on Berzerk.
1981
Satya Pal Asija receives the first U.S. patent for a computer software program May 26, 1981.
29/06/11 23:39
History of computers during 1980 to 1990
2 de 13
http://www.computerhope.com/history/198090.htm
1981
Diskeeper is founded on July 22, 1981.
1981
MS-DOS 1.0 was released August, 1981.
1981
American National Standards Institute more commonly known as ANSI was founded.
1981
IBM joins the computer race by announcing the IBM Personal Computer on August 12, 1981, which runs the new MS-DOS operating system and has a starting price of $1,565.
1981
Kermit is developed at the Columbia University in New York
1981
Xerox introduces the graphical Star workstation. This computer greatly influences the development of Apples future computer models, Lisa and Macintosh, as well as Microsoft's Windows.
1981
VHDL is proposed and begins development.
1981
VMEbus is developed.
1981
Hayes Introduces the Smartmodem 300 with its standard setting AT command set and an operating speed of 300 bits per second.
1981
Adam Osborne introduces the Osborne I, the first successful portable computer, which weighs 25 pounds.
1981
Hewlett-Packard Superchip the first 32-bit chip is introduced.
1981
Commodore ships the VIC-20, which later becomes the worlds most popular computer costing only $299.95.
1981
Logitech is founded in Apples, Switzerland.
1981
Adaptec is founded.
1981
BITNET is founded.
1981
Gemlight is founded.
1981
Hayes releases the Smartmodem 1200 with transfer rates of 1,200 bits per second.
1981
CTX is established.
1981
IBM joins the computer race by introducing IBM 5150 PC that used the 4.77-MHz
29/06/11 23:39
History of computers during 1980 to 1990
http://www.computerhope.com/history/198090.htm
Intel 8088 processor, 16 kB base memory, and PC-DOS (MS-DOS) for the OS.
3 de 13
1981
Kensington is founded.
1982
Peter Norton creates Norton Utilities.
1982
Sony releases its first Trinitron monitor.
1982
SGI is founded.
1982
The Intel 80286 is introduced February 1, 1982.
1982
Maxtor is founded.
1982
Hercules is founded.
1982
Labtec is founded.
1982
Disney releases the movie Tron on July 9, 1982, the first movie to use computer generated special effects.
1982
Number Nine is founded.
1982
Symantec is founded.
1982
A Philips factory in Germany creates the world's first compact disc August 17, 1982.
1982
Jack Kilby is inducted into the National Inventors Hall of Fame.
1982
Microsoft releases FORTRAN for the PC COBOL for MS-DOS, and Multiplan for the Apple II and CP/M machines.
1982
Microsoft establishes a subsidiary in England to begin foreign sales efforts.
1982
WordPerfect Corporation introduces WordPerfect 1.0 a word processing program that will become one of the computer markets most popular word processing program.
1982
The first luggable computer is introduced.
1982
Sun is incorporated in February 1982, with four employees.
1982
Lotus Development Corporation is founded.
29/06/11 23:39
History of computers during 1980 to 1990
4 de 13
http://www.computerhope.com/history/198090.htm
1982
Compaq Computer Corp. is founded by Rod Canion and other Texas Instruments Incorporated engineers. Compaq is the first company to introduce a clone of the IBM PC (the Compaq Portable in 1983) and become IBMs biggest challenger in the corporate market.
1982
The Commodore 64 an 8-bit computer with 64 kilobytes of memory and Commodore BASIC begins to be sold.
1982
Diamond Multimedia is founded.
1982
The HX-20 becomes the first notebook-sized portable computer is introduced by Epson.
1982
MS-DOS version 1.25 is released.
1982
Apple Computer is the first personal computer manufacturer to hit the $1 billion mark for annual sales.
1982
Adobe is founded.
1982
Professor Scott Fahlman creates a post on bulletin board mention the idea of using a series of characters to represent a smiley face and frown face that later became known as emoticons.
1982
BTC is founded.
1982
Sony begins selling the first Audio CD players October 1, 1982.
1982
The XT bus is introduced.
1982
Rich Skrenta a 15-year old high school student creates the first known computer virus known as The Elk Cloner.
1982
The first permanent artificial heart is implanted into Barney Clark December 2, 1982.
1983
Lotus 1-2-3, a spreadsheet program is introduced January 26, 1983.
1983
Apple releases the Lisa computer, the first commercial computer with a GUI.
1983
The IBM XT is first introduced on March 8, 1983.
1983
The first Apple WWDC is held.
29/06/11 23:39
History of computers during 1980 to 1990
1983
Compaq introduces the first 100% IBM compatible computer the "Compaq Portable" in March of 1983.
1983
PC World magazine first appears on newstands March 1983.
1983
BSD 4.2 is released and introduces pseudo terminals.
1983
Zoran is founded.
1983
Paul Allen leaves Microsoft.
1983
Iomega introduces the Bernoulli drive.
1983
The TIME magazine nominates the personal computer as the "machine of the year" December 26,1982, the first non-human ever nominated.
1983
The 414s, a group of hackers are caught by the FBI.
1983
Interplay is founded.
1983
Novell introduces Netware.
1983
The Apple IIe is introduced. The computer contains 64 kilobytes of RAM one megahertz 6502 processor and running Applesoft BASIC and sells for $1,400.
1983
ARPANET standardizes TCP/IP.
1983
Tandy, Epson and NEC all sell notebook computers however only the Tandys model 100 becomes popular because of its low price of $499.
1983
THX is established.
1983
More than 10 million computers are in use in the United States.
1983
MS-DOS 2.0 was released March, 1983.
1983
True BASIC is created and is a compiled, structured language. It doesn't require line numbers, as the original BASIC did, and includes the advanced control structures necessary for structured programming.
1983
The QIC Standard becomes the first standard in the computer history for tape drives.
1983
5 de 13
http://www.computerhope.com/history/198090.htm
Soviet jets shoot down a civilian Korean Air Lines Flight 007 flying from New York to Seoul and kill all 269 passengers and crew. As a result of this mistake President
29/06/11 23:39
History of computers during 1980 to 1990
http://www.computerhope.com/history/198090.htm
Ronald Regan orders the U.S. military to make Global Positioning System (GPS) available for civilian use.
6 de 13
1983
The GNU operating system is first announced by Richard Stallman September 27, 1983.
1983
IBM announces the PCjr (PC junior) computer November 1, 1983.
1983
Microsoft Windows was announced November 10, 1983.
1983
The largest BBS Exec-PC goes online November 28, 1983.
1984
The AT&T company we know today officially starts, expiring the famous Bell logo January 1, 1984.
1984
Docutel/Olivetti introduce the Olivetti PC, compatible with the IBM PC on January 3, 1984.
1984
On January 4th Netherlands Antilles issues a 45-cent postage stamp of a computer making a newspaper.
1984
The now famous Apple "1984" commercial is aired during Super Bowl XVIII January 22, 1984.
1984
On January 24, 1984 the Apple Macintosh is introduced.
1984
Hitachi announces it has developed the first memory chip capable of holding 1MB on January 5th.
1984
IBM's AT computer is introduced.
1984
The MUD was known as MAD becomes the first global MUD and runs across BITNET.
1984
IBM introduces its first portable computer, the IBM Portable weighing in at 30 pounds.
1984
Microsoft creates a new hardware and peripheral division March 29, 1984.
1984
ESS Technologies is founded.
1984
Mark Zuckerberg is born May 14, 1984.
1984
The game Tetris is first released in the USSR June 6, 1984.
29/06/11 23:39
History of computers during 1980 to 1990
1984
Guillemot is founded.
1984
Amiga is purchased by Commodore Business Machines on August 15th.
1984
Bill Gates is featured on the cover of TIME magazine.
1984
ASN.1 is first defined.
1984
The 3.5-inch floppy diskette is introduced and later becomes an industry standard.
1984
Dell Computer is founded May 3, 1984 in Austin Texas.
1984
Fox Software FoxBASE is introduced.
1984
Paul Mockapetris and Jon Postel introduce DNS.
1984
The now famous Apple commercial is shown during the Super Bowl, the commercial introduces the Apple Macintosh, a computer with graphical user interface instead of needing to type in commands. In six months sales of the computer reach 100,000.
1984
Apple AppleTalk networking protocol is introduced.
1984
Dhrystone is developed.
1984
IBM develops EGA.
1984
The computer Museum opens in downtown Boston.
1984
Microsoft introduces MS-DOS 3.0 for the IBM PC AT and MS-DOS 3.1 for networks.
1984
The Tandy 1000 personal computer is introduced and becomes the best-selling IBM-compatible computer of the year.
1984
IBM introduces the Enhanced Graphics Adapter (EGA) video card with higher resolution, more colors, and a quicker response then previous video cards.
1984
University of Southern California professor Fred Cohen creates alarm when he warns the public about computer viruses in his Computer Virus - Theory and Experiments paper.
1984
The term cyberspace is first used and coined by William Gibson in his book Neuromancer.
1984
7 de 13
http://www.computerhope.com/history/198090.htm
The beginning of the greatest adventure computer gaming series is released by
29/06/11 23:39
History of computers during 1980 to 1990
http://www.computerhope.com/history/198090.htm
Sierra. Kings Quest 1: Quest for the crown is released to the public.
8 de 13
1984
The Yellow book of CD-ROM standards is written.
1984
SETI is founded November 20, 1984.
1984
Cirrus is established.
1984
ISA is expanded to 16-bit capability.
1985
The WELL is founded in February 1985 by Stewart Brand and Larry Brilliant.
1985
On January 4th at CES, Commodore introduces the Commodore 128 PC with 8502 processor 128 kB of RAM and ROM cartridge port.
1985
On January 4th at CES, Atari introduces the Atari 130XE, 130ST, 260ST, 520ST, 65XE, 65XEM, and 65XEP computers.
1985
The first Internet domain name symbolics.com is registered by Symbolics, a Massachusetts computer company on March 15, 1985.
1985
The GNU manifesto is published by Dr. Dobb's Journal
1985
Software Arts assets are sold to Lotus. Software Arts is most well known for its VisiCalc program.
1985
The Amiga aka A1000 is introduced..
1985
PNY Technologies is founded.
1985
Dell releases its first computer, the "Turbo PC."
1985
Titus Interactive is founded.
1985
Microtek introduces the world's first 300-dpi black-and-white sheetfed scanner.
1985
Quantum Computer Services is founded, this company later becomes AOL.
1985
Microsoft and IBM begin collaboration on the next-generation operating system (OS/2).
1985
The computer company Gateway 2000 is founded in Siox City, Iowa on September 5, 1985.
1985
CAT1 wiring is introduced.
29/06/11 23:39
History of computers during 1980 to 1990
9 de 13
http://www.computerhope.com/history/198090.htm
1985
Intel introduces the 80386 in October.
1985
Paul Brainard of Aldus Corporation introduces Pagemaker for the Macintosh, a program that lets users mix type and graphics on the same page. The combination of this software and the new Apple LaserWriter laser printer helps create the desktop publishing field.
1985
The Mach Project begins at the Carnegie Mellon University.
1985
IBM develops NetBEUI.
1985
Microsoft Windows 1.0 is introduced in November, 1985 and is initially sold for $100.00.
1985
The Nintendo Entertainment System makes its debut.
1985
ATI is founded.
1985
Steve Jobs quits Apple September 16, 1985.
1985
Boca is established.
1985
IBM introduces the Baby AT motherboard form factor.
1985
Corel is founded.
1985
The first C++ reference guide is published by Bjarne Stoustrup October 14, 1985.
1985
Microsoft releases the first version of Microsoft Excel on the Apple Macintosh November 30, 1985.
1985
Gravis is founded.
1986
The Hacker Manifesto is published in Phrack (Volume One, Issue 7, Phile 3 of 10) on January 8, 1986.
1986
The Internet Engineering Task Force (IETF) is formed January 16, 1986.
1986
The term vaporware is first used by Philip Elmer-DeWitt in a TIME magazine article.
1986
Gigabyte is founded.
1986
Pixar is co-founded by Steve Jobs.
29/06/11 23:39
History of computers during 1980 to 1990
10 de 13
http://www.computerhope.com/history/198090.htm
1986
Apple introduces the Mac Plus. The computer contained one megabyte of RAM, new keyboard that contained cursors and numeric keypad and sold for $2,600.
1986
The AT or 101 key keyboard is introduced by IBM.
1986
Compaq introduces the first 386-based PC compatible computer.
1986
The NCSA opens.
1986
Microsoft is listed on the New York Stock Exchange selling shares to the public at $21 each, making Bill Gates one of the worlds youngest billionaires.
1986
More than 30 million computers are in use in the United States.
1986
The domain ibm.com comes online March 19, 1986.
1986
MS-DOS 3.2 was released April, 1986.
1986
IMAP is developed by Stanford University.
1986
Eric Thomas develops the first Listserv.
1986
NSFNET is created.
1986
BITNET II is created.
1986
IBM PCD announces it's first laptop computer, the PC Convertible, weighing 12 pounds.
1986
CD-i format is specified.
1986
Tandy announces the Color Computer 3 July 30, 1986.
1986
Aztech is established.
1986
Avid is established.
1987
The domain apple.com comes online February 19, 1987.
1987
Oak Technology is founded.
1987
CompuServe introduces the GIF standard and images.
1987
Robert Noyce is awarded the National Medal of Technology.
1987
Microsoft purchases Forethought Incorporated. The company that developed the presentation software PowerPoint.
29/06/11 23:39
History of computers during 1980 to 1990
11 de 13
http://www.computerhope.com/history/198090.htm
1987
Microsoft introduces Microsoft Works.
1987
Dolby AC-1 is introduced.
1987
VIA Technologies is founded.
1987
Microsoft and IBM release OS/2 1.0.
1987
The Mac SE is introduced at $2,900.
1987
Chipsets begin to be found on computer motherboards.
1987
IBM introduces the PS/2 personal computer that has improved graphics, a 3.5-inch diskette drive, and proprietary bus to help prevent clone makers competition, and a bidirectional 8-bit port.
1987
IBM sends clone manufacturers letters demanding retroactive licensing fees.
1987
IBM develops 8514/A.
1987
MS-DOS 3.3 was released April, 1987.
1987
The domain cisco.com comes online May 14, 1987.
1987
IBM introduces MCA.
1987
Microsoft Shares hits $100 per share.
1987
Apogee is founded, Apogee is well known for its computer games as well as the company who first released a 'Shareware' game.
1987
The SPARC processor is first introduced by Sun.
1987
The first e-mail from China is sent to its connection in Germany September 20, 1987.
1987
IBM introduces VGA.
1987
RealTek is founded October 1987.
1987
Larry Wall introduces Perl 1.0
1987
Microsoft introduces Windows 2.0 in December 9, 1987.
1987
Larry Wall releases the first version of Perl on December 18, 1987, version 1.0.
1987
Elitegroup Computer Systems is established.
29/06/11 23:39
History of computers during 1980 to 1990
12 de 13
http://www.computerhope.com/history/198090.htm
1988
Apple files a copyright infringement against Microsoft for Windows 2.03 and Hewlett Packard for New Wave in comparison with their Macintosh operating system.
1988
About 45 million PCs are in use in the United States.
1988
SNMP is introduced.
1988
Robert Morris releases the Morris worm November 22, 1988, becoming one of the first major worms to infect roughly 6,000 computers over the Internet and helps establish the CERT Coordination Center.
1988
First T-1 backbone is added to ARPANET.
1988
Xircom is founded.
1988
Bitnet and CSNET merge to create CREN.
1988
Trend Micro is founded.
1988
Creative Labs introduces the SoundBlaster, a sound card for the PC that contains an 11-voice FM synthesizer with text-to-speech, digitized voice input / output, a MIDI port, a joystick port and bundled software.
1988
Jarkko Oikarinen develops IRC
1988
EISA is announced in September as an alternative to MCA.
1988
Motorola releases the 88000 processor.
1988
NTP is introduced.
1988
Intel 80386SX is introduced.
1988
Promise is founded.
1988
OSF is founded.
1988
Morphing is first introduced in the movie Willow.
1988
MS-DOS 4.0 was released July, 1988.
1988
MS-DOS 4.01 was released November, 1988.
1989
GriD Systems Corporation introduces the first pen-based computer.
29/06/11 23:39
History of computers during 1980 to 1990
http://www.computerhope.com/history/198090.htm
1989
PCMCIA trade association is founded.
1989
ActionFront is founded.
1989
The Gif89a standard is introduced.
1989
ABIT is founded.
1989
Fred Cohen is awarded the Information Technology Award.
1989
Intel releases the 486DX processor, with more than 1 million transistors and multitasking capabilities.
1989
Orange book is released by Philips and Sony.
1989
Poqet announces the Poqet PC the first pocket-sized MS-DOS compatible computer.../history/198090.htm
1989
Asus is founded.
1989
The networking routing protocol OSPF is introduced.
1989
Citrix is founded.
1989
S3 Inc. is founded. 1960-1980 - Computer History - 1990
13 de 13
29/06/11 23:39
VAX
�
Diego Esteban Moreno
Félix Huete García Germán Aguado Llorente
¿QUÉ ES VAX (Virtual Address Extensión)? Es una máquina CISC sucesora de la PDP-11, producida por Digital Equipment Corporation. Su nombre original era VAX-11 (Virtual Address Extended PDP-11). Fue la primera máquina comercial de arquitectura de 32 bits, lo que la convierte en un hito destacable en la historia de la computación. Su sistema operativo, VMS (luego llamado OpenVMS), fue concebido junto con la máquina. Presentaba características muy novedosas para su tiempo, en particular un revolucionario sistema de clustering (varios componentes hardware que se comportan como si fuesen una única computadora). HISTORIA A principios de 1975 se creó una nueva máquina con la intención de sustituir a la serie de ordenadores PDP-11. VAX fue publicado el 25 de octubre de 1977 en la Reunión anual de Digital Equipment de Accionistas. Era la primera máquina disponible en el comercio de 32 bit y fue un hito principal en la historia de ordenador. El VAX utiliza el sistema operativo VMS (más tarde renombró OpenVMS) revolucionario en el mercado. Estuvo diseñado para durar de diez a quince años pero gracias a la combinación del sistema operativo y su buen funcionamiento se prolongó durante más tiempo. El primer VAX-11/780 fue instalado en la Universidad Carnegie Mellon. En 1978 fue instalado en el CERN en Suiza y el Instituto de Max Planck en Alemania. Una de las mejores cosas de la línea VAX era el sistema operativo VMS. Excluyendo el Windows NT, VMS es muy superior a los sistemas operativos modernos instalados en los ordenadores personales. De hecho, la capacidad clustering que fue añadida a VMS, estaba años por delante del Windows NT o cualquier otro sistema operativo. En 1980 la Versión 2 de VMS fue publicada, alcanzando un gran numero de usuarios. En 1982 Digital publicó el VAX-11/730, que era aún más pequeño que el VAX-11/750, mucho más barato y apeló a una base más grande de clientes, en ese año Digital Equipment era la empresa de ordenador número dos por detrás de IBM.
VAX
�
Después que saliese el VAX-11/730, los clientes exigieron un VAX más potente. Digital respondió con el VAX-11/782, que eran dos procesadores VAX-11/780 compartiendo la misma memoria. En octubre de 1984 Digital se anunció el VAX 8600, que era el primero de una segunda generación de máquinas VAX. Hacia 1986 Digital había anunciado los 8800, 8300 y 8200. Un año más tarde estos anunciaron los 8974 y los 8978. El MicroVAX II fue lanzado en julio de 1982 y comercializado en mayo de 1985, era más barato (menos 20,000 dólares) y mas rápido. De hecho, la velocidad de procesador era tan rápida como la del VAX-11/780. En 1992 Digital Equipment Corporation lanzó Alpha, una máquina de 64 bits RISC (conjunto reducido de instrucciones) que desarrolló una versión modificada de VMS llamado AXP. Los últimos modelos nuevos de VAX (modelos 7000 y 10000) fueron lanzados en 1992, aunque se introdujeron cambios hasta 1997. La línea se discontinuó en 1999, y en ese entonces se rumoreaba que todas las unidades remanentes habían sido adquiridas por Intel. ARQUITECTURA DE VAX REGISTROS Tiene una organización de registros generales de 32 bits, el apuntador de pila y el contador del programa se consideran registros de uso general. También existen otros registros de control: › Apuntador de argumentos (ap) › Apuntador de trama (fp) Que son usados para las llamadas de procedimientos.
TIPOS DE DATOS Vax maneja diferentes tamaños de datos: › byte › palabra (word, 2 bytes) › doble palabra (longword, 4 bytes)�
VAX
�
› cuadruple palabra (quadword, 8 bytes) › octaword
Vax utiliza diferentes tipos de datos: › enteros (1 byte - 8 bytes) › numeros en punto flotante (simple precisión, 4 bytes y doble precisión, 8 bytes), › caracteres › BCD › cadenas ›
y otros de menor importancia
ESTRUCTURA DE REGISTROS PC (Program Counter, contador de programa) ::> que contiene la dirección de
la siguiente instrucción a procesar; SP (Stack Pointer, apuntador de cima de pila) ::> Almacena la dirección de la cabecera de la pila del sistema. FP (Frame pointer, apuntador de trama o puntero de marco) AP (Argument pointer, apuntador a los argumentos)
VAX
�
Estos dos últimos registros son especialmente útiles cuando se manejan procedimientos y se quiere acceder a la información de la trama de pila creada en la llamada y ejecución de la rutina o procedimiento. Sus últimos bits, son bits de condición: *Z (cero) ::> Se activa si el resultado operación es 0. *N (negativo) ::> Se activa si el resultado operación es negativo. *V (desbordamiento u overflow) ::>Si hay acarreo *C (acarreo) ::> Si hay desbordamiento. MAPA DE LA MEMORIA VIRTUAL La memoria virtual de Vax se divide en cuatro secciones de un gigabyte de tamaño cada una: Sección gama de dirección: p0 0x00000000 - 0x3fffffff p1 0x40000000 - 0x7fffffff s0 0x80000000 - 0xbfffffff s1 0xc0000000 - 0xffffffff Para VMS, p0 fue utilizado para el espacio del proceso del usuario, p1 para el apilado de proceso, s0 para el sistema operativo, y s1 era el reservado. MODOS DE PRIVILEGIO Vax tiene cuatro modos de privilegio: Nº
MODO
USO DE VMS
NOTAS
0
NUCLEO
NUCLEO DEL OS
EL NIVEL MÁS ALTO DEL PRIVILEGIO
1
EJECUTIVO
SISTEMA DE FICHEROS
2
SUPERVISOR
SHELL (DCL)
3
USUARIO
PROGRAMAS NORMALES
EL NIVEL MÁS BAJO DEL PRIVILEGIO
VAX
�
ALINEACIÓN DE DATOS EN MEMORIA Tiene la desventaja respecto al PDP-11 de que no es obligatoria la alineación a la hora de acceder a las instrucciones alojadas en memoria, por lo que su acceso a los mismos es más lento si no existe dicha alineación. Definición: un acceso a un objeto de tamaño t bytes en el byte de dirección D se alinea si D mod t = 0 (mod: resto de la división D/t). Es decir, la dirección del objeto debe ser múltiplo de su tamaño en bytes.
El alineamiento permite simplificar los accesos a memoria: hardware más sencillo y la misma velocidad de acceso para cualquier palabra en memoria. Ejemplo: doble palabra alineada y no alineada
VAX
�
REFERENCIAS � Vax-11 assembly language programming, Sara Baase � Computer arquitecture and vax assembly language programming, James E. Brink � www.worldlingo.com/ma/enwiki/es/vax � www.webmythology.com/vaxhistory.asp
Universidad de Puerto Rico Recinto Universitario de Mayagüez Decanato de Asuntos Académicos Centro de Cómputos
Introducción al Sistema VAX/VMS
Lilliam I. Lugo Ramírez Unidad de Servicios al Usuario
Introducción al Sistema VAX/VMS
1
ENTRADA Y SALIDA AL SISTEMA
Para poder trabajar con el sistema VAX/VMS se necesita ser un usuario autorizado. Para estos fines el Centro de Cómputos le asigna a cada usuario un número de usuario (username) y una contraseña (password) mediante los cuales el usuario puede utilizar el sistema y almacenar documentos en discos magnéticos. Para establecer comunicación con el sistema VAX/VMS se debe encender el terminal. La mayoría, sino todos, los terminales están conectados al sistema VAX a través de servidores de terminales (LAT); así que al encender el terminal se presentará en pantalla el indicador Local> o Vista> dependiendo del servidor de terminales al cual se encuentre atachado. Independientemente de cual indicador aparezca en pantalla, ambos le permiten al usuario conectarse a cualquier nodo de la red UPREnet. La forma correcta de hacerlo es: Ej.
Local> C nombre_del_nodo Local> C RUMAC Local> C UPR1
nodo académico en el R.U.M. (VAX 6510) nodo académico en U.P.R. (VAX 6310)
Dependiendo del nodo al que el usuario interese conectarse, será el logo de presentación que aparezca en pantalla. El sistema requerirá un nombre de usuario y una contraseña para poder accesar un área de trabajo en dicho nodo. Si la contraseña corresponde al número de usuario indicado, el sistema operativo le dará acceso a su área de trabajo; esto lo indicará con el signo de dolar ($). El signo de dolar es el indicador (prompt) del sistema VAX/VMS, el cual le señala al usuario que ya puede comenzar a trabajar. Es importante notar que la contraseña no aparecerá impresa en la pantalla, esto se hace como medida de seguridad para evitar que usuarios ajenos a un área de trabajo accesen el mismo. Si es la primera vez que se accesa un área de trabajo, el sistema operativo obliga al usuario cambiar la contraseña que le fue asignada. Por este motivo el sistema VMS pedirá una nueva contraseña y una verificación de la misma antes de presentar el indicador de sistema ($). Your password has expired; you must set a new password to log in New password: nueva_contraseña Verification: nueva_contraseña $ En ambos casos se escribe la nueva contraseña; al aparecer el indicador de VMS ($) la
Introducción al Sistema VAX/VMS
2
contraseña ya ha sido cambiada. Esta nueva contraseña será la contraseña que prevalecerá hasta que el usuario cambie la misma nuevamente. De cometer algun error en la verificación de la nueva contraseña el sistema operativo continuará pidiendo verificación hasta que ambas contraseñas sean equivalentes. Entre las reglas para la asignación de una nueva contraseña están: 1. 2. 3. 4.
Un mínimo de 8 caracteres y un máximo de 32. Se aceptan letras, números, combinación de letras y número. No espacios en blanco. Simpre que se trabaje con contraseñas, las mismas no se presentarán en pantalla. Esto es como medida de seguridad.
Al concluir su sesión de trabajo, el usuario tiene que salir de su área de trabajo de forma correcta. Para esto se utiliza el comando LOGOUT. $ LOGOUT nombre_usuario log out at fecha y hora de salida Local> De esta forma el usuario desactiva su cuenta y retorna al servidor de terminal en uso. De lo contrario, el usuario dejará su área de trabajo activa accesible a cualquier otro usuario que utilice el mismo terminal.
Introducción al Sistema VAX/VMS
3
NOTAS IMPORTANTES
Los comandos utilizados por el sistema VMS (Virtual Memory System) pertenecen al lenguaje de comandos creados por la compañía Digital (Digital Command Language (DCL)). Este lenguaje permite la comunicación del usuario con el sistema operativo VMS. Una línea de comandos en el sistema VAX/VMS puede contener un máximo de 256 caracteres, pero de ser necesario permite continuar en la próxima línea de comandos utilizando para ello un guión (-) al final de cada línea. El indicador de sistema VMS ($), que le anuncia al usuario que ya puede comenzar a trabajar, puede ser cambiado al gusto del usuario. Para esto: Ej.
$ SET PROMPT = nuevo_indicador $ SET PROMPT = VAX>> El nuevo indicador será VAX>> en lugar de $.
Una de las ventajas que provee el sistema VAX/VMS es que guarda hasta 3 versión de un mismo archivo modificado, enumerando los mismo. Siendo así el número más alto la versión más reciente del archivo. Ej.
DATA.BAS;1 DATA.BAS;2 DATA.BAS;3
(versión más reciente)
A nivel de comando de DCL ($), la tecla direccional norte (↑) permite traer a pantalla hasta 20 de los últimos comandos ya ejecutados, sin necesidad de escribir los mismos nuevamente. El sistema VAX/VMS posee la utilidad HELP que permite al usuario familiarizarse con los comandos de sistema directamente desde la pantalla de su terminal. Para invocar ésta simplemente se escribe el comando HELP a nivel de DCL y se presiona la tecla de ENTER. De inmediato, aparecerá una lista de todos los comandos del sistema, de los cuales el usuario podrá seleccionar el que interese. Otra forma de utilizar esta utilidad es acompañando al comando HELP con el nombre del comando que interese. Ej.
$ HELP o
$ HELP PRINT
Introducción al Sistema VAX/VMS
4
TECLADO DE EDITADO EN DCL
Al escribir los comandos en el sistema VMS se pueden cometer errores, los mismos pueden ser corregidos fácilmente utilizando combinaciones de teclas. Algunas de éstas son las siguientes: <---
Elimina un caracter a la izquierda del cursor.
F1
Detener la pantalla momentáneamente. (Hold Screen)
F12
Mueve el cursor al prinicipio de la línea.
F13
Elimina la palabra que se encuentra a la izquierda del cursor.
CTRL/A
Tecla de doble función, añadir o reemplazar.
CTRL/B
Invocar hasta 20 comandos previamente ejecutados.
CTRL/U
Si el cursor se encuentra al final de una línea, elimina la línea completa. De otra forma, elimina todos los caracteres que se encuentren a la izquierda del cursor.
CTRL/J
Equivalente a F13.
CTRL/Q
Activa la pantalla (CONTINUE).
CTRL/F
Mueve el cursor un caracter a la derecha. Equivalente a la fecha direccional -->.
CTRL/D
Mueve el cursor un caracter a la izquierda. Equivalente a la flecha direccional <--.
CTRL/S
Equivalente a F1.
CTRL/Y
Interrumpe abruptamente un proceso.
CTRL/C
Cancela un proceso.
CTRL/H
Equivalente a F12.
CTRL/Z
Salida de un proceso. En un editor, guarda el archivo.
Introducción al Sistema VAX/VMS
5
COMANDOS BASICOS
COPY Cuando se habla de copiar un archivo se refiere a crear una copia exacta del mismo archivo bajo otro nombre. Su estructura es la siguiente: Ej.
COPY nombre_arch_viejo nombre_arch_nuevo Nombre_arch_viejo = MEMORANDUM Nombre_arch_nuevo = MENSAJE.DAT COPY MEMORANDUM MENSAJE.DAT Ambos archivos poseen el mismo contenido, lo que los diferencia es el nombre.
CREATE Es uno de los comandos utilizados para crear pequeños archivos. Utilizando el mismo se pueden añadir datos inmediatamente en un archivo y terminar los mismos presionando las teclas CTRL Z de forma simultánea. La estructura básica de este comando es: CREATE nombre_arch_a_crear Ej. CREATE MENSAJE.DAT Vms es un sistema <RETURN> CTRZ/Z Se crea un archivo llamado MENSAJE.DAT cuyo contenido es una línea "Vms es un sistema.". La única desventaja del comando CREATE es que no permite modificaciones a un archivo que ya ha sido creado anteriormente. Es por esto, que se recomienda utilizar un editor (EDIT, EVE) para crear archivos extensos. DELETE El comando delete permite elimina uno o más archivo del directorio que está en uso.
Introducción al Sistema VAX/VMS
6
Su estructura es: Ej.
DELETE nombre_archo_a_eliminar;versión DELETE MENSAJE.DAT;1 Elimina el archivo llamado MENSAJE.DAT la versión número 1.
DIR Muestra en la pantalla los nombres y atributos de los archivos que se encuentran contenidos en un área de trabajo específica. Entre las opciones de este comando están: DIR
Muestra los nombres y versiones de los archivos.
DIR/DATE
Lista los archivos con su fecha de creación.
PURGE Elimina las versiones anteriores de un archivo dejando sólo la versión más reciente. Su estructura es la siguiente:
Ej.
PURGE nombre_arch
Elimina las versiones anteriores del archivo que se indica.
PURGE
Elimina todas las versiones anteriores de todos los archivos que existen en el directorio, dejando sólo la versión más recientes.
PURGE MENSAJE.DAT Elimina todas las versiones del archivo MENSAJE.DAT y deja sólo la versión más reciente.
Si se desea eliminar versiones de un documento dejando sólo las dos (2) versiones más recientes el formato es: PURGE/KEEP=2 nombre_arch
Introducción al Sistema VAX/VMS
7
PRINT Comando para imprimir a través de la impresora el contenido de un archivo. La estructura a seguir es: Ej.
PRINT nombre_arch PRINT MENSAJE.DAT Produce un reporte con el contenido del archivo MENSAJE.DAT.
RENAME Comando utilizado para cambiar únicamente el nombre de un archivo y no el contenido del mismo. Para hacer esto se escribe: Ej.
RENAME nombre_viejo nombre_nuevo Nombre_viejo = MEMORANDUM Nombre_nuevo = MENSAJE.DAT RENAME MEMORANDUM MENSAJE.DAT El nombre del archivo MEMORANDUM ha sido cambiado por el de MENSAJE.DAT, pero el contenido del mismo se mantiene intacto.
TYPE Presenta en la pantalla el contenido de un archivo. Su estructura es: Ej.
TYPE nombre_arch TYPE MENSAJE.DAT Presenta en pantalla el contenido del archivo MENSAJE.DAT.
Si el contenido de un archivo es tan extenso que tome más de una pantalla, se puede utilizar la tecla F1 para detener momentáneamente la pantalla y así poder leer fácilmente el contenido del archivo.
Introducción al Sistema VAX/VMS
8
COMANDOS MISCELANEOS
CREATE/DIRECTORY Crear subdirectorios. La estructura básica de este comando es: Ej.
CREATE/DIRECTORY [directorio principal.subdirectorio] Directorio_principal = SEMINARIO Subdirectorio = BASICO CREATE/DIRECTORY [SEMINARIO.BASICO]
PRINT/COPIES= Imprimir cierto número de copias de un mismo archivo. Ej.
PRINT/COPIES=número_copias nombre_arch o
PRINT/COPIES=2 MENSAJE.DAT PRINT MENSAJE.DAT/COPIES=2
PRINT/FORM= Especificar la forma o tipo de papel en que se va a imprimir un documento o archivo. Ej.
PRINT/FORM=número de forma nombre_arch o
PRINT/FORM=9510 MENSAJE.DAT PRINT MENSAJE.DAT/FORM=9510
PRINT/PAGES Imprimir únicamente las páginas que se indiquen de un archivo. El formato a seguir es el siguiente: Ej.
PRINT/PAGES=(número_de_páginas) nombre_arch
Introducción al Sistema VAX/VMS
9
PRINT/PAGES=(2,4) MENSAJE.DAT Imprimirá solo las páginas 2, 3 y 4 del archivo MENSAJE.DAT. PRINT/SPACE Imprimir el documento a doble espacio. Su estructura es: Ej.
PRINT/SPACE nombre_archivo PRINT/SPACE MENSAJE.DAT
SET DEFAULT Comando utilizado para el movimiento de un directorio a otro. Su estructura básica es: Ej.
SET DEFAULT [directorio_principal.subdirectorio] Directorio_principal = REGISTRO Subdirectorio = MEMOS SET DEFAULT [REGISTRO.MEMOS]
Para retornar al directorio anterior se utiliza: SET DEFAULT [-] SET TERMINAL Comando utilizado usualmente para cambiar las características del terminal que este en uso. Entre estas características se encuentra el cambio del tamaño de la pantalla de 80 columnas a 132 columnas y vicerversa. Esto sería: SET TERMINAL/WIDTH=132 SET TERMINAL/WIDTH=80
132 columnas 80 columnas
Introducción al Sistema VAX/VMS
10
SHOW DEVICE Presenta información relacionada a los periferales de entrada y salida, almacenamiento, y periferales de comunicación existentes en el computador que se está utilizando. SHOW QUEUE Muestra una lista de todos los archivos que están en espera para salir a través de la impresora. Existen diferentes comandos para ver las listas de los archivos en la impresora, entre estos están: SHOW QUEUE
presenta información sobre las conectadas al computador en uso.
impresoras
SHOW QUEUE/ALL nombre de impresora presenta todos los trabajos que se enviaron a imprimir a tráves de la impresora que se indica. Ej.
SHOW QUEUE/ALL SYS$PRINT Presenta una lista de todos los trabajos que se están procesando en la impresora de la Sala de Cómputos de Monzón.
SHOW TIME Indica la fecha y hora (militar) actual del computador. SHOW USERS Muestra en pantalla el nombre de los usuarios que están haciendo uso interactivo del computador. Además muestra la cantidad de procesos y subprocesos que cada usuario está realizando.
Ciclo Formativo: Módulo:
Desarrollo de Aplicaciones Informáticas Análisis y Diseño Detallado de Aplicaciones Informáticas de Gestión
Unidad de Trabajo 8:
DESCRIPCIÓN DE PROGRAMAS Arturo Mora Rioja
1. Diseño de programas El glosario de términos de Calidad e Ingeniería del Software de la Asociación Española de Control de Calidad define el diseño como “el proceso de definición de la arquitectura software: componentes, módulos, interfaces, procedimientos de prueba y datos de un sistema que se crean para satisfacer unos requisitos especificados”. Mediante la fase de diseño del software no sólo se garantiza que el mismo cumpla las necesidades requeridas por el cliente/usuario, sino que se adecúe a las normas de calidad, cumpliendo una serie de criterios mesurables. Las tareas a realizar en la fase de diseño son las siguientes: •
Selección de la arquitectura global del sistema. A no ser que venga ya impuesta por el Plan de Sistemas donde esté encuadrado el proyecto, o bien que sea el cliente quien nos solicite un entorno determinado. Es posible que la selección de la arquitectura sea un paso simple, al haber similitudes con soluciones ya implantadas.
•
Descomposición en subsistemas. En este caso los subsistemas son físicos y no lógicos, como en la fase de análisis. Pueden coincidir, pero no tiene por qué.
•
Identificación de concurrencias. De cara a su adecuado manejo, se intentará equilibrar características del hardware, rendimiento esperado y coste asumible.
ADAI - 8. Descripción de Programas
•
Control de recursos compartidos. Debe garantizarse la disponibilidad de los recursos, así como una política de seguridad que impida accesos indebidos.
•
Gestión de los datos. Se elige el diseño físico más adecuado para almacenar la información a tratar, así como la información de control.
•
Diseño de interfaces. Tanto interfaz visual como con otras aplicaciones (ficheros, alertas, XML, …), e interfaz hardware si es necesario.
•
Identificación y manejo de excepciones. No hay suficiente con especificar aquello que se desea que el sistema haga. También es necesario tener en cuenta qué acciones erroneas podrían ocurrir y qué hacer en esos casos.
•
Selección de los algoritmos y de las estructuras de datos. Diseño de bajo nivel.
•
Especificación de pruebas. Estructura y orden de las mismas, así como definición del juego de pruebas a tratar.
•
Preparación para la migración/carga inicial. Procedimiento a seguir para la puesta en producción de la aplicación.
De forma posterior al diseño, y partiendo de la definición de algoritmos, comienza la fase de codificación (programación) del sistema.
2. Conceptos básicos de programación. •
Instrucción. Tarea fundamental o elemental que es capaz de realizar el ordenador. Cada problema se descompone en instrucciones comprensibles por el ordenador.
•
Algoritmo. Conjunto de instrucciones que representan la estrategia de solución de un problema. Se representan en pseudocódigo. Ha de cumplir las siguientes características: ⇒ Tener un número finito de instrucciones. ⇒ Ser realizado en un tiempo finito. ⇒ Tener un número finito de parámetros de entrada, así como de valores de salida. ⇒ Frente al mismo conjunto de datos de partida siempre se debe llegar a un mismo conjunto de resultados.
•
Programa. Codificación de uno o varios algoritmos en un lenguaje de programación inteligible por la máquina.
2005 Arturo Mora Rioja
2
ADAI - 8. Descripción de Programas
•
Lenguaje de programación. Conjunto de normas lingüísticas que permiten codificar un programa para que sea entendido por el ordenador.
•
Subprograma. Cada uno de los componentes en que se puede dividir un programa complejo, entendiendo el programa como un conjunto de subprogramas. A pesar de que hay múltiples y habituales excepciones, teóricamente se establece lo siguiente: ⇒ Función. Subprograma que devuelve uno y sólo un valor. ⇒ Procedimiento. Subprograma que puede devolver 0, 1 o n valores.
•
Compilador. Un compilador es un programa que lee el código fuente escrito en un lenguaje y lo traduce en un programa equivalente llamado programa objeto. Posteriormente se necesita de un proceso de enlazado o linkado para obtener un fichero ejecutable. Un lenguaje compilado depende tanto del hardware como del SO. Proceso de compilación: Código fuente (source)
COMPILADOR
Código fuente (source)
…………….
Código objeto (OBJ)
COMPILADOR
Código objeto (OBJ)
LINK/LINKER/LINKEDITADOR/LINKADOR/ENLAZADOR
Código ejecutable (EXE)
Ejemplos de lenguajes compilados: C, C++, Visual Basic, Pascal, Cobol
• Intérprete. Un intérprete no compila el código fuente, sino que lo lee y
realiza la acción asociada con cada línea de código, ejecutando de forma inmediata y sin necesidad de crear ficheros objeto ni de enlazar: Instrucción fuente
INTÉRPRETE
Ejecución de la instrucción
Ejemplos de lenguajes interpretados: JavaScript, VBScript, MS-DOS Shell 2005 Arturo Mora Rioja
3
ADAI - 8. Descripción de Programas
Hay un caso especial de lenguaje en parte compilado y en parte interpretado, que es el lenguaje Java. En Java el código se compila en el servidor, obteniéndose un código intermedio no ejecutable llamado bytecode. Dicho bytecode es posteriormente interpretado en el cliente instrucción a instrucción. Es un caso curioso, ya que hay compilación pero no existe un fichero ejecutable.
3. Tipos de programación Independientemente de la metodología a emplear, todo programa ha de cumplir las siguientes características: •
Legibilidad. Facilidad de lectura y comprensión, motivo por el que es más que necesario el uso de comentarios.
•
Portabilidad. Facilidad de exportabilidad a otros sistemas o entornos.
•
Fácil modificación. De ese modo se consigue que el mantenimiento también sea más cómodo.
•
Modularización. Descomposición del problema en otros más pequeños y manejables.
•
Estructuración. Aplicación de un método y normas básicas.
Actualmente se identifican tres grandes tipos de programación, todos ellos con el mismo objetivo: trabajar acorde con las características mencionadas.
3.1.
Estructurada
También llamada imperativa, podríamos definirla teóricamente como aquella que utiliza siempre una estructura con un único punto de entrada y un punto de salida, y que sólo usa tres estructuras de control: la secuencial, la selectiva o alternativa y la repetitiva. El hecho de que todo programa, sea cual sea su tarea, se puede hacer utilizando tan sólo esas tres estructuras, fue demostrado por Böhm y Jacopini en 1966. Generalmente el concepto de programación estructurada va siempre asociado al de descomposición modular y técnica de diseño descendente (top-down). Una de sus premisas es la eliminación casi por completo de las instrucciones de salto incondicional, para facilitar la lectura del código.
2005 Arturo Mora Rioja
4
ADAI - 8. Descripción de Programas
La estructuración y modularización que promueve este tipo de programación ha desembocado en el uso de librerías de utilidades, paso previo a la programación orientada a objetos. Además, favorece la documentación, al presentar una arquitectura clara y legible.
3.2.
Orientada a Objetos (OOP – Object-Oriented Programming)
Forma parte de toda una metodología de análisis, diseño y programación que aplica conceptos abstractos en busca de una mayor calidad y menor coste, habiéndose erigido como la metodología de los 90. La clave del OOP consiste en una representación más directa del mundo real, reduciendo de ese modo el salto entre el problema expresado desde el punto de vista del usuario y la especificación formal de cara al lenguaje comprensible por el ordenador. Según la orientación a objetos, el problema a desarrollar se centra en objetos del mundo real y su comportamiento. Así, en vez de tratar procesos tratamos a los objetos involucrados, accediendo y modificando los datos de dichos objetos, y ejecutando las acciones que sobre ellos se pueden aplicar. Dichos datos son llamados atributos y las acciones, métodos. Todo grupo de objetos de idénticas características se agrupan en clases, estando definido su interfaz en la clase y no en el objeto. Así, un claro ejemplo de orientación a objetos podría ser el siguiente: Clase Cliente atributos Nombre Tipo de cliente Fecha de alta métodos Borrar() CambiarNombre() CambiarTipo()
objeto Juan Pérez
objeto José Ruiz
objeto Luis Sanz
En este caso, si queremos eliminar al cliente José Ruiz, no ejecutamos el proceso de borrado de clientes con José Ruiz como parámetro (como ocurriría en programación estructurada), sino que invocamos al objeto José Ruiz (instancia de la clase Cliente) y aplicamos sobre él el método Borrar(). Gracias a esta estructura de clases y objetos se garantiza la modularidad, estructuración y el concepto de caja negra, de modo que utilizamos objetos como instancias de clase, sin importarnos cómo esté construida la clase por dentro.
2005 Arturo Mora Rioja
5
ADAI - 8. Descripción de Programas
La orientación a objetos, además, incluye algunos conceptos importantísimos en el desarrollo de software moderno. Son los siguientes: •
Encapsulación. Indica que los objetos sólo pueden ser manejados mediante su interfaz (atributos y métodos). La única forma de acceso a los datos subyacentes es a través de los dos mecanismos mencionados, lo cuál garantiza la estabilidad y rocosidad del elemento a tratar.
•
Persistencia. Cada objeto ocupa un determinado espacio de memoria, y sólo existe durante una cierta cantidad de tiempo. De ese modo la orientación a objetos nos garantiza un uso efectivo de la memoria, al no tener que cargar el programa entero para su ejecución, sino sólo lo estrictamente indispensable.
•
Reusabilidad. Este concepto, ya existente en el ámbito de la programación estructurada, surge de una forma natural en OOP. Al diseñar una clase estamos implicando un interfaz externo de manejo de los objetos derivados de dicha clase, de modo que toda clase podrá ser exportada a otros sistemas de información siendo, por tanto, reusada.
•
Herencia. Mecanismo mediante el cual una clase (subclase) adquiere automáticamente los atributos y métodos de otra clase (clase padre), de modo que se permite especializar una clase en otras más concretas. El ejemplo habitual:
Clase Forma métodos Crear() Borrar() CalcularSuperficie()
Clase Cuadrado
Clase Triángulo
Clase Círculo
atributos Lado
atributos Base Altura
atributos Radio
Clase Rectángulo atributos Lado 2
2005 Arturo Mora Rioja
6
ADAI - 8. Descripción de Programas
•
Polimorfismo. Derivada de la herencia, esta característica implica una reacción distinta del sistema ante una misma petición, dependiendo de a qué objeto sea enviada. Siguiendo el ejemplo anterior, podemos tener un objeto oCuadrado de la clase Cuadrado, un objeto oTriangulo de la clase Triángulo y un objeto oCirculo de la clase Círculo. En los tres casos el interfaz para calcular la superficie es idéntico, al heredarlo de la clase padre (el método CalcularSuperficie() de la clase Forma), pero el comportamiento interno será distinto. Para oCuadrado se calculará como Lado2, mientras para oTriangulo como (Base * Altura) / 2 y para oCirculo como * Radio2.
Como se puede ver, la programación orientada a objetos aporta grandes ventajas a la hora de desarrollar un sistema software, pero también inconvenientes derivados de la cruda realidad: •
Se necesita un equipo de desarrollo con mucha experiencia y conocimiento de las técnicas de orientación a objetos.
•
La fase de análisis suele ser más larga y ha de ser mucho más exacta que en desarrollo estructurado. Un error en el análisis es muy difícil de corregir en fases posteriores.
•
El cliente no ve nada funcionando hasta bastante avanzado el desarrollo. Si se usan prototipos, siempre son desechables.
•
El mantenimiento es muy complicado. Esta técnica es claramente desaconsejable para proyectos susceptibles de cambio, especialmente en su modelo de datos.
El desarrollo orientado a objetos necesita de un lenguaje de programación orientado a objetos. Posteriormente se verán algunos ejemplos.
3.3.
Conducida por eventos (Event-Driven Programming)
Ya avanzados los años noventa, y debido a la proliferación de sistemas operativos gráficos, surge un paso adelante en el desarrollo de software, mediante el uso de los llamados lenguajes de programación conducida por eventos. El concepto de evento parte del propio interfaz gráfico, donde las acciones no se ejecutan secuencialmente, como en los interfaces de línea de comandos, ni de forma aislada e independiente, como en los primeros interfaces de menús, sino debido a la ocurrencia de acciones asíncronas llamadas eventos. Así, un evento es el click sobre un botón, la elección de un elemento de una comboBox o lista desplegable, la captura o pérdida del foco por parte de una caja de texto, etc. 2005 Arturo Mora Rioja
7
ADAI - 8. Descripción de Programas
Cada evento desencadena una serie de acciones implícitas (entre las que se encuentran otros eventos) y, además, permite la ejecución de código fuente. Este concepto aporta flexibilidad, pero también desestructuración y dificultad de lectura del programa, por lo que se debe usar con pleno conocimiento y de forma bien documentada. Generalmente el event-driven programming se aplica en los lenguajes llamados visuales, dentro de los cuales el más famoso es Visual Basic. Aparte de esa característica de conducción por eventos, el código fuente puede ser posteriormente estructurado, orientado a objetos o una mezcla de ambos.
4. Lenguajes. Tipos y características 4.1.
Lenguaje máquina Representación de las instrucciones que puede ejecutar una CPU mediante combinación de ceros y unos. Es de ejecución inmediata (no hay compilación), y su aplicación en la actualidad está reducida al ámbito del diseño de hardware.
4.2.
Lenguajes simbólicos
4.2.1.
Ensamblador Las secuencias de ceros y unos se sustituyen por un nemotécnico (ADD, MOV, ...). A pesar de esa aparente facilidad, las instrucciones que ejecuta son de muy bajo nivel, por lo que sólo se utiliza para casos muy concretos, generalmente relacionados con software empotrado, y combinándolo con lenguaje C. Para que el lenguaje ensamblador pueda ser convertido en código máquina ha de sufrir un proceso de traducción mediante un software llamado ensamblador (assembler), que es totalmente dependiente de la CPU y de su familia (Intel 386, Intel 486, Motorola 68000, etc.). Su portabilidad es, por tanto, nula.
4.2.2.
Lenguajes de alto nivel Son más próximos al lenguaje natural, y permiten representar tanto las intrucciones que representan la lógica del programa como las estructuras de datos, ofreciendo capacidad para dimensionar la memoria a utilizar.
2005 Arturo Mora Rioja
8
ADAI - 8. Descripción de Programas
J Portabilidad a partir del código fuente, que es independiente del hardware subyacente. J Facilidad de programación. J Facilidad de lectura (por tanto, de mantenimiento). L No se aprovecha de forma óptima la arquitectura interna de la máquina. L No se optimiza el mantenimiento de la memoria principal. L Existe redundancia de órdenes. Tipos de lenguajes por especialización funcional: • •
Propósito general. Basic (Visual Basic), Pascal (Delphi), C (C++), Java, ADA. Propósito específico. o Gestión de empresa. Cobol, RPG, Transact-SQL, PL/SQL. o Cálculo científico. Fortran, Mathlab. o Inteligencia Artificial. Prolog, LISP. o Desarrollo para la web. PHP, VBScript, JavaScript, Java, Python, C#.
Tipos de lenguajes por diseño interno: •
Lenguajes estructurados. Ejemplo: Basic, Pascal, C.
•
Lenguajes multiplataforma. Permiten generar código ejecutable en cualquier arquitectura hardware y/o software posibilitando, además, que el código ejecutable pueda obtenerse de múltiples orígenes. Ejemplo: C#, Java, Python.
•
Lenguajes Orientados a Objetos. ⇒ Puros. Toda función (método) y propiedad (atributo) han de pertenecer obligatoriamente a una clase. Ejemplo: Java, Eiffel, Smalltalk. ⇒ Híbridos. Permiten usar técnicas de programación estructurada a la vez que OOP. Ejemplo: C++, Delphi, Python, C#, Visual Basic.
•
Lenguajes de cuarta generación (4GL). Solamente se especifica qué dato se quiere recuperar, sin indicar el cómo. Suelen estar asociados a una base de datos. Ejemplo: SQL.
2005 Arturo Mora Rioja
9
ADAI - 8. Descripción de Programas
•
Lenguajes procedurales de base de datos. Formados por un 3GL (lenguaje anfitrión, es el que provee los algoritmos) y un 4GL (lenguaje huésped, es el que accede a los datos). Ejemplo: PL/SQL, Transact-SQL, PowerHouse.
•
Lenguajes de marca o etiqueta. Permiten señalar la estructura de un conjunto de informaciones mediante pares de etiquetas que han de responder a una gramática conocida. Ejemplo: HTML, SGML, XML.
•
Lenguajes de Scripting. Se usan para manejar la capa de presentación en entornos de Internet, Intranet o Extranet, conviertiéndose en una mejora de HTML. A veces se les incluye en el concepto de DHTML (HTML dinámico). Ejemplo: JavaScript, VBScript.
•
Lenguajes funcionales. Basados en lenguaje de listas, se suelen utilizar en el ámbito de la inteligencia artificial. Ejemplo: LISP.
Bibliografía: • • •
Apuntes propios (1992-2004) Temario de pruebas selectivas para acceso por promoción interna al Cuerpo de Técnicos Auxiliares de Informática de la Administración del Estado (Ministerio de Administraciones Públicas) Gestión de Sistemas e Informática de la Administración del Estado (Centro de Estudios Financieros)
2005 Arturo Mora Rioja
10