Subido por Ariadna Perez

APUNTES MODULO 2

Anuncio
E:\_rzplEscritorioPC\_RATZAR - APUNTES CURSO open-bootcamp\OpenBootcamp - Ruta de 0 a Dev (Desarrollador)\Modulo 2 - Introducción
lunes, 19ade
la diciembre
programación\RATZAR
de 2022 3:40 p.m.
APUNT
sitio web del curso
https://campus.open-bootcamp.com/cursos/79
instructor:
instructor: Víctor Román Archidona
https://www.linkedin.com/in/victorromanarchidona/?locale=es_ES
/*******************************************
1.- Curso de Introducción a la programación
/*******************************************
LENGUAJES DE PROPOSITO GENERAL sirven para programar cualquier tipo de programas desde um
programa de escritorio hasta sistema operativo
LENGUAJES DE NICHO
especializados en una cosa particular, no sirve para todo.
LENGUAJES MIXTOS tienen caracteristicas de proposito general y de nicho.
TIPOS DE LENGUAJE DE PROGRAMACION:
.- LENGUAJE COMPILADO: el compilado se ejecuta mas rapido que el compilado, pero requiere de un
compilador para compilar el codigo fuente y crear el archivo ejecutaple/compilado. La secuencia
de 1 y 0 de un procesador intel no es la misma secuencia que para un procesador AMD, o culquier
otro tipo de procesador, por lo cual necesito un compliador que seha capaz de generarme una
secuencia de 1 y 0 adecuado al procesador/arquitectura de la maquina donde se va ejecutar el
programa. El compilado es mas rapido pero no sirve para todas las arquitecturas, necesito un
compilador para cada arquitectura. Dan Maximo Rendimiento.
.- LENGUAJE INTERPRETADO
para ejecutar un lenguaje interpretado necesitas un interprete que lee el codigo y luego lo
ejecuta. El interpretado se puede ejecutar en diferentes tipos de procesadores/arquitectura ya
que el interprete es quien ejecuta el programa. Si existe un interprete para mi
arquitectura/procesador se podra ejecutar. Existen interpretes que sirven para diferentes
arquitecturas. Los interpretados son mas lentos, pero yo escribo un programa una sola vez y el
interprete se encarga de lo demas. Dan maxima portabilidad.
Ejemplo: Java, PHP, Perl.
.- LENGUAJE HIBRIDO:
es un lenguaje interpretado cuyo interprete es capaz de compilar al codigo nativo segun le haga
falta (interpreta en cualquier plataforma y es capaz de compilar de acuerdo al procesador)
.- LENGUAJE TIPADO
son aquellos en los que yo puedo almacenar datos pero debo indicarle al programa
datos que estoy utilizando (Integer, String, Booleam, etc)
el tipo de
.- LENGUAJE NO TIPADO
en estos mi compilador e interprete es capaz de identificar automaticamente que tipo de dato es
el que estoy utilizando.
TIPOS DE APLICACIONES:
APLICACIONES WEB, APLICACIONES DE ESCRITORIO, APLICACIONES MOVILES.
APLICACIONES WEB:
tiene un frond end (html+css+javascript), back end (Sistema remoto que contiene la informacion
"SERVIDOR", estar desarrollado con varios lenguajes de programacion).
-1-
E:\_rzplEscritorioPC\_RATZAR - APUNTES CURSO open-bootcamp\OpenBootcamp - Ruta de 0 a Dev (Desarrollador)\Modulo 2 - Introducción
lunes, 19ade
la diciembre
programación\RATZAR
de 2022 3:40 p.m.
APUNT
APLICACIONES DE ESCRITORIO:
tambien tenemos un frond end y un back end, lo que varia son los lenguajes de programacion
utilizados.
APLICACIONES MOVILES:
tambien tenemos un frond end y un back end, pero se centran en lo que se dominan vista
casi todas las aplicaciones funcionan igual, tienen un front end y un back end
A CLIENTE-SERVIDOR:
las aplicaciones front end y back end (obtiene los datos de forma remota)
cliente servidor.
se les conoce como
API es un conjunto de funciones a los que los clientes le pide algo y el se las pide al
servidor y nos la devuelve.
Tabien existen librerias que funcionan como las API que realizan tareas especificas para
dieferentes lenguajes de programacion.
MEMORIA Y VARIABLES:
La memoria es donde nuestro opccontinuna cierta informacion que el procesador necesita para
funcionar.
La memoria es un espacio finito, si nuestra memoria se llena nuestro programa deja de funcionar
y el pc se colapsa.
La memoria tiene un espacio al que se identifica con una direccion de memoria.
los programadores utilizan los nombres de variables para referirse a una posicion de memoria.
es mas facil utilizar los nombres de variables
memoria por sus pociciones de memoria
que referirnos a los valores almacenados en la
la memoria es dinamica, en cualquier momento puede cambiar su valor.
los nombres de variable hacen referencia a una posicion de memoria.
TIPOS DE VARIABLES:
VARIABLES: las que pueden cambiar su valor en la memoria. una ves asignado a la posicion de
memoria un valor este puede ser cambiado por otro valor.
CONSTANTES: las que no pueden modificar su valor en la poscion de memoria despues de haberle
asignado un valor. Es una asignacion de valor en la memoria que no va poder cambiar durante el
ciclo de vida/ejecucion del programa.
RESUMEN:
la memoria es finita, en la memoria almacenamos valores, la memoria se organiza entrono de
millones de posiciones, los datos se almacenan en esos millones de posicines, y para el
programador es muy dificil acordarse de esos millones de pociciones por lo cual le asignamos
nombres humanos que los puedo marcar como variables o constantes.
INSTALACION DE JAVA E INTELLIJ
Descargar e instalar el OpenJDK
Instalar el entorno de desarrollo Inyellij
INTRODUCCIION A LOS TIPOS DE DATOS PRIMITIVOS
Cuando guardamos datos en la memoria esos datos deben tener un formato/tipo especifico
-2-
E:\_rzplEscritorioPC\_RATZAR - APUNTES CURSO open-bootcamp\OpenBootcamp - Ruta de 0 a Dev (Desarrollador)\Modulo 2 - Introducción
lunes, 19ade
la diciembre
programación\RATZAR
de 2022 3:40 p.m.
APUNT
un tipo de dato primitivo es un tipo de dato basico en cualquier lenguaje de programacion, casi
todos los lenguajes comparten un mismo tipo de dato primitivo.
tipo caracter: representa un unico caracter, ejemplo una letra, un numero, un simbolo. Estos
ocupan una posicion en la memoria.
los caracteres normalmente van entre comillas simple.
cuando utilizamos el tipo caracter la memoria no guarda el caracter, lo que guarda es el valor
numerico del caracter asscii en la posicion de memoria.
tipo texto/string: este es una secuencia de caracteres, en memoria se guarda de forma
consecutiva cada caracter (su numero asscii) que forma la cadena en una posicion de memoria.
las cadenas de texto normalmente van entre comillas dobles.
1 caracter = 8bits = 1 bytes
4 caracter = 4 * 8 --> 32 bits = 4 bytes
recuerda que la memoria es finita.
tipo numerico: son valores numericos. pueden ser positivos o negativos.
variable = '1' --> esta hace referencia al numero que contiene el caracter 1 de la tabla asccii
(49)
variable = 1 --> esta hace referencia literalmente al numero 1 (no ha un caracter)
los numeros se dividen en numeros enteros y en numeros de coma flotante (decimales)
los numeros en memoria se guardan en binario. (32 bits)
se almacenan en 32 bits separados en 4 octetos
32 bits
-> 000000000000000000000000
4 octetos -> 00000000 00000000 00000000 00000000
en memoria los numeros decimales se guarda una parte la parte entera y en otra parte la parte
decimales
tipo boolean: solo pueden tener dos valores true ó false / 0 ó 1
TIPOS DE DATOS COMPLEJOS
se forman a partir de los tipos de datos basicos
tipo arrays: es una coleccion/conjunto de un mismo tipo de datos primitivo, puden tener
multiples elementos.
tambien puedo tener un aray de array, a estos se les llama array bidimencional.
tipos de datos tupla: es una especie de arry variable,
array asociativo: son compuesto cada elemento se forma con una clave y un valor.
tipo de datos objetos: un objeto es una entidad/algo que en nuestro programa intentar
representar algo del mundo real.
los objetos tienen propiedades, tienen metodos (los metodos son algo que puede modificar las
propiedades del objeto)
-3-
E:\_rzplEscritorioPC\_RATZAR - APUNTES CURSO open-bootcamp\OpenBootcamp - Ruta de 0 a Dev (Desarrollador)\Modulo 2 - Introducción
lunes, 19ade
la diciembre
programación\RATZAR
de 2022 3:40 p.m.
APUNT
CURIOSIDADES SOBRE LOS TIPOS DE DATOS
las cadenas de texto siempre terminan con un caracter null/0
/*******************************************
3.- funciones
/*******************************************
principalmente las funciones nos evita tener que repetir codigo.
prototipo de una funcion: las funciones tienen un nombre, unos valores que va recibir
(parametros) y un(os) valores que va retornar (tipo de datos).
puedo tener una funcion que no devuelva nada (void/vacio)
cuando se llaman una funcion en memoriase crean unas variables segun os parametros de la
funcion, las variables que se crean dentro de la funcion se destruñen al terminar su ejecucion,
por eso se utiliza retur para retornar un valor.
las funciones pueden aceptar parametros o no.
las funciones pueden devolver un valor.
el cuerpo de la funcion es donde se implementa la logica/codigo de la funcion.
las variables creadas en el cuerpo de la funcion se destruyen al terminar la ejecuacion de la
funcion, dentro de la funcion podemos operar con ellas.
FUNCIONES AVANZADAS
formas de pasarles parametros a las funciones: por valor y por referencia.
por valor: se pasa una copia del valor y el tipo de dato.
por referencia: le paso a la funcion una direccion/referencia de memoria y la funcion modifica
el contenido/valor almacenado en esa referencia. cuando se pasa por referencia realmente lo que
se pasa es un puntero.
funcion recursiva: es una funcion que devuelve un valor y que se invoca a si misma.
callback: es asignar el nombre de una funcion a una variable y llamar indirectamente a la
funcion a traves de la variable.
/*******************************************
4.- sentencias de control
/*******************************************
todas las sentencias de control utilizan condiciones, y de acuerdo a la condicion que se cumpla
hace una u otra cosa.
los condicionales son condiciones,que compran una cosa con otra.
condiciones
logicas: and y or
("Y","O")
condiciones comparativas: >,<,>=, <=, !=, == (para igualdad se utiliza doble igual, cuando es
un solo igual = se utiliza para asignacion)
compara la parte izquierda con la parte de la derecha.
las comparativas solo pueden tener uno de dos resultados, verdadero ó falso.
-4-
E:\_rzplEscritorioPC\_RATZAR - APUNTES CURSO open-bootcamp\OpenBootcamp - Ruta de 0 a Dev (Desarrollador)\Modulo 2 - Introducción
lunes, 19ade
la diciembre
programación\RATZAR
de 2022 3:40 p.m.
APUNT
BUCLES WHILE Y DO WHILE
un bucle es hacer algo un numero determinado de veces mientras se cumpla una condicion
BUCLES FOR
SWITCH CASE
/*******************************************
5.- errores
/*******************************************
nos referimos a los errores cometidos por los programadores, tales como: dar nombres que no son
significativos a las variables, no añadir comentarios en el codigo, no mantener la coherencia
en el estilo de la escritura del codigo, errores en convercion de tipos de datos (convertir un
double 15,9 en un int 15, los valores enteros no tienen decimal), error al referirse a un
indice del array (un array declarado con 5 elementos los indices van del 0..4), el signo
decimal es un punto y por error utilizamos una coma para la parte decimal, tratar de almacenar
en una variable un alor mayor o menor del permitido por el tipo de datos de la variable
incurrimos en un error de overflow (cuando le paso +1 que el maximo permitido empieza a contar
desde el minimo permitido, ejemplo el tipo byte su rango es -128..+127 ). por lo cual hay que
utilizar el tipo de dato segun al valor que se va almacenar en la variable. los array inician
los indices en 0 hasta cantidadElementosArray-1. la memoria ram no es infinita por lo que hay
que utilizar el tipo de dato correcto a los alor4es que se van almacenar en las variables.
/*******************************************
6.- DEPURACION
/*******************************************
consiste en buscar anomalias durante la ejecucion del programa, se va depurar utilizando un
software depurador, funcionan mediante puntos de ruptura, un punto de ruptura es una parte del
programa donde le decimos al programa parar y en ese momento se abre el depurador, los puntos
de ruptura se inservan por medio de comandos, muchos entornos desarrollo de hoy en dia ya
incorporan el depurador y podemos insertar directamente los punto de ruptura, cuando el
programa encuentra el punto de ruptura se detienen pero no finaliza su ejecucion el se detiene
en esa sentencia en espera de que yo haga algo y se muestra el panel de depuracion, el pane de
depuracion muestra lo que esta pasando en ese momento (muestra las variables y sus valores
actuales)
en la ventana del depurador yo puedo modifivar el valor actual de una variable para evaluar que
sucede ante casos no esperados en la ejecucion del programa.
watcher point, es un punto de depuracion que sucede solo cuando se cumpla una condicion.
pila de llamadas, son para saber por donde (lineas codigo,funciones, etc) ha pasado el
programa, nos muestra el numero de linea donde a pasado
/*********************************************************
7.- INTRODUCCION A LA PROGRAMACION ORIENTADA A OBJETOS
/*********************************************************
para proyectos grandes nos permite tener el codigo segmentado, actualmente es la tendencia
utilizar objetos.
un objeto, es una entidad que representa algo del mundo real.
tienen: propiedades, metodos
dependiento del lenguaje de programacion utilizado los objetos los podemos crear utilizando
clases, funciones con estructuras.
-5-
E:\_rzplEscritorioPC\_RATZAR - APUNTES CURSO open-bootcamp\OpenBootcamp - Ruta de 0 a Dev (Desarrollador)\Modulo 2 - Introducción
lunes, 19ade
la diciembre
programación\RATZAR
de 2022 3:40 p.m.
APUNT
en java, creamos la clase con sus propiedades y metodos, luego creamos un objeto de la clase.
Los objetos los creamos instanciando la clase.
instanciar un objeto crea en la memoria zona a traves de una variable con el contenido de la
clase (propiedades, metodos, etc)
la convencion indica que para crear una instancia de una clase y por tando crear un objeto,
primero pondre el nombre de la clase seguido del nombre de la
variable (objeto) luego se
instancia utilizando la palabra New seguida del nombre de la clase. luego con el nombre de la
variable y utilizando un punto seguido de esta podre acceder a las propiedades y metodos de la
clase.
a las funciones que creamos dentro de una clase le llamaremos metodos.
las clases se "construyen" cuando yo no creo el constructor de la clase java automaticamente lo
crea por mi.
uns Constructor, es una forma de inicicalizar las propiedades de una clase cuandola
instanciamos (creamos el objeto)
regla para crear el constructor en java: 1.- el constructor no devuelve ningun tipo de datos
(no lleva void despues del public 2.- el nombre del constructor debe ser el mismo que el nombre
de la clase, puede tener opcionalmente unos parametros 3.- el constructor se ejecuta
automaticamente cuando instancio la clase (new)
en java existe algo llamado SOBRE CARGA DE FUNCIONES , esto es que yo puedo crear dos o mas
funciones constructor dentro de mi clase pero con distinto numero/tipos de parametros,
dependiendo de los argumentos pasados al momento de instanciar el objeto se llamara la funcion
constructora que corresponda.
el constructor es lo primero que se ejecuta al instanciar la clase
el constructor es el mejor sitio para inicializar las propiedades de la clase.
para ser referencia dentro de la clase a una propiedad de la clase se utilisza la palabra
this.propiedad
/*********************************************************
8.- PRIVACIDAD, ABSTRACCION Y ENCAPSULAMIENTO
/*********************************************************
PRIVACIDAD
Propiedades de la clase:
Propiedades publicas:
son las propiedades que se pueden acceder desde dentro y desde fuera de la clase
(instancias/objetos de la clase)
se le puede o no
colocar la palabra "public" cuandocreamos las propiedades de la clase.
Propiedades privadas:
son las propiedades que solo se pueden accerder desde dentro de la clase.
se le coloca la palabra "private" cuandocreamos las propiedades de la clase
no se puede acceder desde el objeto que e instanciado de la clase a sus propiedades que sehan
privadas "private"
-6-
E:\_rzplEscritorioPC\_RATZAR - APUNTES CURSO open-bootcamp\OpenBootcamp - Ruta de 0 a Dev (Desarrollador)\Modulo 2 - Introducción
lunes, 19ade
la diciembre
programación\RATZAR
de 2022 3:40 p.m.
APUNT
ENCAPSULACION
consiste en jugar con los tipos prublicos y privados de forma que desde dentro de la clase los
manipuele y desde fuera de la clase los pueda utilizar.
Para encapsular declaramos todas las propiedades de las clase como privadas y luego creamos dos
funciones por cada una de las propiedades las cuales tendran la funcion de modificar/asignar el
valor de la propiedad (funcion setter) o devolvernos el valor de la propiedad(funcion getter)
las funciones setter (set) son de tipo "public void" ya que estas nunca devuelven nada, solo
asigna valor a la propiedad private de la clase.
a las funciones setter se le tienen un argumento que debe ser del mismo tipo de datos que la
propiedad a la que le va asignar/modificar su valor el cual es pasado como parametro cuando se
llama la funcion setter desde la instancia de la clase.
las funciones getter (get) si retornan un valor, y se debe indicar e tipo de valor que va a
retornar el cual debe ser del mismo tipo que de la propiedad que va a leer.
para variables/propiedades que vamos a utilizar solo dentro de nuestra clase (para operaciones,
calculos, condicionales, etc) no es necesario crear los metodos/funciones getter ni setter, ya
que no se van acceder desde fuera de la clase, y por lo cual la vamos a manipular directamente
desde dentro de nuestra clase.
las propiedades private de tipo bolleam son un caso especial por convencion ya que a los
metodos setter se tratan igual que las demas, pero su metodo getter ya no le llamariamos "get"
sino que se le colocaria "is" (al getter le llamaremos is+NombrePropiedad)
ABSTRACCION
las clases abstractas no se pueden instanciar directamente, tienen que ser heredadas.
dentro de una clase abstracta lo que no se declare como abstracta sera comun para todas las
instancias/objetos creados de esta clase.
pudiesemos resumir como que una clase abstaracta tiene una serie de codigo/funciones ya
programadas (que no tiene la palabra abstracta y que seran comunes a las instancias de esta
clase) y otra que deberemos programar nosotros mismos (funciones que tienen la palabra
abstracta y que no tienen el codigo escrito solo tiene su nombre creado).
una funcion abstracta no va tener su codigo escrito.
se dice que una clase abstracta son como cases parciales, ya que tienen un codigo ya escrito y
otroque tendremos queprogramar.
Una clase abstracta es aquella de la que no se pueden declarar instancias, dicho de otra manera
no se pueden declarar objetos de una clase abstracta. La finalidad de una clase abstracta es
servir como clase base para otras clases a las que generalmente se conoce como clases
"concretas".
La abstracción en la programación orientada a objetos es un concepto muy importante y se
utiliza para reducir la complejidad de un programa, a través del uso de clases e interfaces
abstractas, que permite la reutilización de código y la simplificación del mismo a través de la
herencia.
Una clase abstracta es una clase base para otras clases llamadas “clases concretas” o clases
reales.
La finalidad de esta clase consiste en ocultar lo complicado de nuestro código y ofrecernos
-7-
E:\_rzplEscritorioPC\_RATZAR - APUNTES CURSO open-bootcamp\OpenBootcamp - Ruta de 0 a Dev (Desarrollador)\Modulo 2 - Introducción
lunes, 19ade
la diciembre
programación\RATZAR
de 2022 3:40 p.m.
APUNT
funciones de alto nivel, sencillas de utilizar para interactuar con nuestra aplicación sin
conocer cómo funciona por dentro.
Con la abstracción captamos los comportamientos y atributos de un objeto, ocultando detalles y
solo mostrando información esencial.
Una clase abstracta es una clase común que posee atributos y métodos, y tiene como mínimo un
método abstracto, además puede contener métodos normales.
Esta clase no puede ser instanciada, solo puede heredarse, o sea no se puede usar para crear un
objeto.
La creación del objeto se hará a través de sus clases hijas, las cuales están obligadas a
implementar los métodos abstractos definidos en la clase principal.
Para poder implementar los métodos, la subclase debe hacerlo a través del uso de la palabra
reservada extends. Cuando se crea la subclase la misma “extiende” esos comportamientos desde
una clase padre, en este caso abstracta y así el objeto que se creará luego heredará todos los
atributos y métodos definidos previamente.
Para definir una clase como abstracta, utilizamos la palabra reservada abstract.
Una clase abstracta está restringida en su uso, no permite crear objetos, para la creación de
los mismos se deben heredar las características y métodos a otra clase, conocida como clase
hija o subclase.
Un método abstracto, sólo puede ser usado y estar definido dentro de una clase abstracta.
El método abstracto no tiene cuerpo y no están implementadas sus funciones, es obligatorio
redefinir a través de una clase hija que lo hereda, esta es la clase “real” que proporcionará
el cuerpo para dicho método.
La subclase es la encargada de implementar (DEBETE TENER EL CODIGO) estas funciones, de manera
obligatoria.
La clase abstracta sirve para implementar clases parcialmente.
¿De qué hablamos cuando decimos “implementar una clase parcialmente”?
Que una clase abstracta se implemente parcialmente significa, que al definirla, solo le damos
los nombres de los métodos a implementar, pero no cómo hacerlo.
Es como si la clase abstracta dijera “Te llamarás Juan y serás cocinero” pero no le indica a la
clase hija como llegar a “ser cocinero”, eso queda a criterio de la clase que hereda.
Por lo tanto podríamos decir que nos da las órdenes para implementar funciones mediante la
herencia.
La clase padre nos dice que tenemos que hacer, no importa cómo, solo que cumplamos con la norma.
La implementación definitiva queda a cargo de las clases hijas que heredan esos nombres sin
cuerpo (métodos vacíos) y luego esas clases hijas deciden la forma de implementarlos.
Para poder utilizar los métodos de una clase abstracta sí o sí, deberemos crear una clase hija
y esta deberá crear implementaciones para todos los métodos definidos en la clase principal.
/*********************************************************
9.- HERENCIA, POLIMORFISMO E INTERFACES
/*********************************************************
HERENCIA
consiste en que una clase hereda (extends) metodos y propiedades de otra clase
-8-
E:\_rzplEscritorioPC\_RATZAR - APUNTES CURSO open-bootcamp\OpenBootcamp - Ruta de 0 a Dev (Desarrollador)\Modulo 2 - Introducción
lunes, 19ade
la diciembre
programación\RATZAR
de 2022 3:40 p.m.
APUNT
CLASE DERIVADA
puedo crear una clase que herede de otra y en esta (la que hereda) ampliar sus funcionalidades
(creandole/añadiendole propiedades y funciones propias de esta clase que hereda).
FINAL CLASS (NO PERMITE QUE HEREDEN DE ELLA)
una "final class" es una clase que no permite que otras clases hereden (extends) de ella.
------------------------NOTA: nunca voy a utilizar una clase padre cuando dependa de un metodo de una clase hija, si la
clase hija implementa metodos que no estan en la clase padre, evidentemente las instancias de
las clases padres no tienen los metodos propios/añadidos en la clase hija.
si puede existir la herencia multiple, clases que heredan e varias clases y/o clases que
heredan de otras clases que su ves heredaron de otras (Padre--> Hija1--> Hija2--> hija3.....)
voy a utilizar laclase padre cuando estoy seguro que no voy a necesitar sino solo los metodos
que ya estan en esta clse padre.
POLIMORFISMO
consiste que en mi clase hija puede sobreescribir el codigo de los metosodos de mi clase padre,
es decir mi clase hija tiene un metodo que se llama igual a un metodo de mi clase padre pero cn
un codigo distinto/hace un proceso dieferente al heredado de mi clase padre.
el polimorfismo tiene el mismo pro
una misma funcion implementada en dos clases con una relacion de dependencia (herecia)
ejecutara la funcion que este mas cernana en ese nivel de dependencia.
/*********************************************************
10.- metodos de clase
/*********************************************************
a las funciones dentro de las clase le llamamos: metodos
a la declaracion de una funcion dentro de la clases se les llama: prototipo ó firma
la vicibilidad de los metodos pueden ser: publica o privadas
los metodos pueden o no devolver un valor de retorno.
a los metodos se le asigna un tipo de datos cuando retornan un valor igual al tipo de valor
retornado.
si los meotodos no retornan ningun valor se le asidna el tipo "void"
los metodos pueden o no tener parametros.
se dice que una clase satisface una interfaz cuando una clase implementa (implements) todos los
metodos de dicha interfaz.
cuando pasamos por valor los argumentos a los parametros de mi funcion, lo que se pasa es el
valor de mis vaiables, es decir se copia el valor de mi variable a la variable/parametro que
recibe el argumento. este es el metodo mas utilizado, pero tiene el inconveniente de que
consume mucha memoria cuando los datos don muy grandes ya que se hace una copia en memoria de
estos, ejemplo si paso un array con una gran cantidad de datos.
esta es una desventaja con respecto a cuando los paso por referencia, ya que cuando uso paso
-9-
E:\_rzplEscritorioPC\_RATZAR - APUNTES CURSO open-bootcamp\OpenBootcamp - Ruta de 0 a Dev (Desarrollador)\Modulo 2 - Introducción
lunes, 19ade
la diciembre
programación\RATZAR
de 2022 3:40 p.m.
APUNT
por referencia se pasa es la direccion de memoria donde esta guardado el valor de la variable.
cuando el parametro de una funcion es un objeto se pasan siempre por referencia.
en java siempre se pasan los parametros por valor, excepto si el parametro es de tipo objeto
que siempre se pasan por referencia.
las funciones recursivas son funciones que se llaman a si mismas, en este tipo de funciones hay
que aseguarse de colocar una sentencia de control que cuando se cumpla se pueda salir de la
funcion y no quedar en un cilco infinito.
/*********************************************************
11.- lenguajes compilados e interpretados
/*********************************************************
un compilador toma una secuencia de caracteres que forman un archivo de codigo y lo convierte
en otra cosa.
compila un lenguaje fuente en un lenguaje destino (codigo maquina o en otro lenguaje).
principalmente hay dos tipos de compiladores, los que generan codigo de maquina y los que
generan codigo intermedio (interpretado).
un lenguaje compilado se compila a codigo de maquina.
¿Qué es un lenguaje compilado?
Un lenguaje compilado es aquel lenguaje de programación que lleva a cabo el proceso de traducir
el código a lenguaje de máquina (binario) haciendo uso de un compilador.
El primer compilador fue desarrollado por Grace Hooper, una científica y militar de
nacionalidad estadounidense que se empeñó en lograr que los seres humanos interactuaran de una
manera sencilla con las computadoras.
El compilador toma la totalidad del código escrito y lo traduce, generando un archivo o fichero
de código ejecutable que la máquina podrá interpretar directamente.
Algunos ejemplos de lenguaje compilado son: Haskell, C, C++, Cobol, Basic, Algol, Basic, etc.
El lenguaje compilado y el compilador
Como el lenguaje compilado requiere de un compilador para funcionar, es interesante saber los
pasos que lleva a cabo este para lograr construir un código que la máquina pueda entender.
FASES DEL COMPILADOR:
1.- fase de analizador lexico:
lee el codigo y lo convierte en una secuencia de caracteres.
su funcion principal es general el "string de token",
analizador identifica: las palabras reservadas, identificcadores de variables, simbolos de
asignacion, etc.
2.- fase de analisis sintaxtico:
lee los "string de token" y analiza si tienen sentido.
-10-
E:\_rzplEscritorioPC\_RATZAR - APUNTES CURSO open-bootcamp\OpenBootcamp - Ruta de 0 a Dev (Desarrollador)\Modulo 2 - Introducción
lunes, 19ade
la diciembre
programación\RATZAR
de 2022 3:40 p.m.
APUNT
el analizador sintaxtico es el que nos arroja los errores de sintaxis
3.- fase de generar codigo intermedio:
el analizador sintactico genera un codigo intermedio, que no es el codigo final,
se genera una estructura de datos llamada ABSTRACT SYNTAX TREE (ARBOL SINTACTICO ABSTRACTO)
una traduccion del lenguaje humano a un codigo que entienda mejor el compilador.
es
4.- fase de optimizacion de codigo intermedio
(unroll loop)
5.- fase de generacion de codigo:
aqui es donde el compilador general el codigo final: codigo de maquina/compilado ó codigo para
ser interpretado.
java, python y php (son lenguajes interpretados)
compilado se ejecuta directamente en el procesador y la memoria del sistema operativo, el
interpretado no este se ejcuta en un interprete.
hay lenguajes que son compilado e interpretados simultaneamente: C#
ha esta tecnica la llaman JIT --> JUST-IN-TIME
la ventaja de los interpretado es que son mas sencillo de depurar, los interpretados se pueden
ejecutar es distintas plataformas, con el compilado hay que tener un compilador deacuerdo al
procesador donde se va a ejecutar.
el lenguaje interpretado no se ejecuta en el procesador
virtual del lenguaje
sino que se ejecuta en la maquina
framework: es un conjunto de librerias y herramientas para desarrollar.
es muy importante conocer primero el lenguaje de programacion y luego aprender a utilizar los
frameworks.
FRAMEWORK
Zend Framework --> para php
ReactJS --> para javascript
Spring, Hibernate, Lucene, Solr --> para Java
CUANTOS LENGUAJES SE NECESITAN PARA PROGRAMAS
hay que desacoplar el Front End del Back End
el front ende es la pagina web (podria ser utilizando html, css y javascript para darle
funcionalidad),
el back end es la parte que accede a los datos, es lo que se ejecuta en el servidor, el
software del back end puede estar escrito en un lenguaje o en multiples lenguajes diferentes.
tambien tenemos una capa de datos normalmente son bases de datos.
el front y el back end se comunican por medio de un protocolo, normalmente con http se envia
una peticion desde nuestro navegador web hacia el servidor
en muchos proyectos la parte fron y back end se ejecuta en servidores web.
-11-
E:\_rzplEscritorioPC\_RATZAR - APUNTES CURSO open-bootcamp\OpenBootcamp - Ruta de 0 a Dev (Desarrollador)\Modulo 2 - Introducción
lunes, 19ade
la diciembre
programación\RATZAR
de 2022 3:40 p.m.
APUNT
-12-
E:\_rzplEscritorioPC\_RATZAR - APUNTES CURSO open-bootcamp\OpenBootcamp - Ruta de 0 a Dev (Desarrollador)\Modulo 2 - Introducción
lunes, 19ade
la diciembre
programación\RATZAR
de 2022 3:40 p.m.
APUNT
-13-
Descargar