aboutsummaryrefslogtreecommitdiff
path: root/poo/n1.lyx
diff options
context:
space:
mode:
authorJuan Marín Noguera <juan.marinn@um.es>2020-02-24 11:22:00 +0100
committerJuan Marín Noguera <juan.marinn@um.es>2020-02-24 11:22:00 +0100
commit79e1a51eb55d0df43323c0fe77a7d55b2c2bd17d (patch)
tree89bd93a329f9deb72efce8fed205b69918c3d9b9 /poo/n1.lyx
parent1f7f9bcc7660fba0827a62c3068d5c7082f025d7 (diff)
POO
Diffstat (limited to 'poo/n1.lyx')
-rw-r--r--poo/n1.lyx235
1 files changed, 235 insertions, 0 deletions
diff --git a/poo/n1.lyx b/poo/n1.lyx
new file mode 100644
index 0000000..4ab7e7c
--- /dev/null
+++ b/poo/n1.lyx
@@ -0,0 +1,235 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+La evolución de los lenguajes de programación va ligada al crecimiento de
+ la complejidad en aplicaciones y a la mejora de la capacidad del hardware,
+ y busca acercarse a los conceptos del dominio de la aplicación (
+\series bold
+abstracción
+\series default
+).
+ Un
+\series bold
+paradigma de programación
+\series default
+ es una serie de conceptos que guían la forma de pensar acerca de los programas,
+ construirlos y estructurarlos.
+ Los lenguajes de programación reflejan uno o varios de estos paradigmas.
+\end_layout
+
+\begin_layout Standard
+El paradigma
+\series bold
+orientado a objetos
+\series default
+ organiza el software como una colección de objetos que se relacionan y
+ proveen la funcionalidad de un sistema.
+ Este paradigma nos permite:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Abstracción
+\series default
+: Centrarse en las propiedades de los tipos y no en la implementación.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Modularidad
+\series default
+: Descomponer el software en componentes que se combinan entre sí.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Encapsulación
+\series default
+: Juntar la estructura de un tipo de datos con sus operaciones.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Ocultación de información
+\series default
+: Diferenciar la parte pública de un módulo de la privada.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Herencia
+\series default
+: Definir clases a partir de otras.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Polimorfismo
+\series default
+: Permitir que una entidad haga referencia a objetos de distintos tipos.
+\end_layout
+
+\begin_layout Standard
+En 1985 se crean el
+\series bold
+C++
+\series default
+, extensión orientada a objetos de C muy popular que ayudó a difundir el
+ paradigma, y
+\series bold
+Eiffel
+\series default
+, creado por Bertrand Meyer tras un profundo estudio del paradigma pero
+ considerado
+\begin_inset Quotes fld
+\end_inset
+
+teórico
+\begin_inset Quotes frd
+\end_inset
+
+ y poco usado.
+\end_layout
+
+\begin_layout Standard
+En 1995, Sun Microsystems (adquirido por Oracle en 2009) crea
+\series bold
+Java
+\series default
+, un lenguaje OO puro popularizado por su uso en la web y con numerosas
+ bibliotecas de código, y en el año 2000 Microsoft crea
+\series bold
+C#
+\series default
+, que combina C++ y Java, junto con su plataforma
+\series bold
+.NET
+\series default
+.
+\end_layout
+
+\begin_layout Standard
+El compilador de Java genera un
+\series bold
+código intermedio
+\series default
+ o
+\emph on
+bytecode
+\emph default
+, independiente de la plataforma, e interpretado o compilado en el momento
+ (compilación
+\series bold
+JIT
+\series default
+,
+\emph on
+Just In Time
+\emph default
+) por la máquina virtual de Java (JVM), con lo que el código se puede ejecutar
+ en cualquier máquina que tenga instalado el entorno de ejecución de Java
+ y la máquina virtual, independientemente de la arquitectura del procesador
+ y el sistema operativo.
+\end_layout
+
+\begin_layout Standard
+Java presenta una sintaxis sencilla, parecida a C++ pero eliminando las
+ características complejas, y es robusto al ser fuertemente tipado (el compilado
+r detecta muchos problemas del código), soportar excepciones (para gestión
+ de errores en tiempo de ejecución) y proveer
+\begin_inset Quotes fld
+\end_inset
+
+recogida de basura
+\begin_inset Quotes frd
+\end_inset
+
+ (hace innecesaria la gestión de punteros).
+ Aprenderemos Java 1.8.
+\end_layout
+
+\end_body
+\end_document