PPT de la última clase del curso de "Introducción a la programación" impartido por EscuelaIT.
Un repaso rápido a la historia de los lenguajes de programación y su clasificación según paradigma (procedurales, estructurados, orientados a objetos, funcionales,...) y su sistema de tipos (dinámicos, estáticos).
Tutorial de JFLAP en español que explica paso a paso todas las funcionalidades de la herramienta y al final contiene varias prácticas que van de un nivel de dificultad bajo hacia uno más alto.
Este documento explica la relacion existente entre el algebra lineal y el funcionamiento y optimizacion de las busquedas de los navegadores en internet
Automata de Pila y Maquina de Turing No DeterministasPedro Roman
Presentación de los temas Automata de Pila No Deterministas y Maquina de Turing No Deterministas
Universidad Iberoamericana
Lenguajes Formales y Teorias de Automatas
Estudiantes:
Luis R. Sánchez 15-0589
Pedro Román Infante 15-0298
Tutorial de JFLAP en español que explica paso a paso todas las funcionalidades de la herramienta y al final contiene varias prácticas que van de un nivel de dificultad bajo hacia uno más alto.
Este documento explica la relacion existente entre el algebra lineal y el funcionamiento y optimizacion de las busquedas de los navegadores en internet
Automata de Pila y Maquina de Turing No DeterministasPedro Roman
Presentación de los temas Automata de Pila No Deterministas y Maquina de Turing No Deterministas
Universidad Iberoamericana
Lenguajes Formales y Teorias de Automatas
Estudiantes:
Luis R. Sánchez 15-0589
Pedro Román Infante 15-0298
● Objetivos
● Introducción
● Máquina de Turing
● Autómatas con Pila
● ¿Qué son los LLC?
● Funcionamiento de los Autómatas de Pila
● Diseño de los Autómatas de Pila
● Combinación modular de AP
● Formalización de los AP
● Ejemplos Prácticos
● Objetivos
● Introducción
● Máquina de Turing
● Autómatas con Pila
● ¿Qué son los LLC?
● Funcionamiento de los Autómatas de Pila
● Diseño de los Autómatas de Pila
● Combinación modular de AP
● Formalización de los AP
● Ejemplos Prácticos
Proceso Paralelo
Es un tipo de proceso asimilable a los grandes sistemas. Consiste básicamente en procesar varias operaciones de modo simultáneo por distintas unidades centrales. En realidad, estamos en un ámbito de proceso cooperativo que implica una arquitectura de microprocesadores ligados entre sí y compartiendo tareas.
Normalización de la base de datos (3 formas normales)michell_quitian
Existen 3 niveles de normalización que deben respetarse para poder decir que nuestra Base de Datos, se encuentra NORMALIZADA, es decir, que cumple con los requisitos naturales para funcionar óptimamente.
Charla que di en la Bilbostack 2022 sobre Kubernetes.
Discutía casos de uso, cuando usarlo y cuando no y algunos consejos destinados a aquellos que se están planteando usarlo.
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDAEduard Tomàs
KEDA es un escalador para kubernetes basado en eventos externos, pensado para escalar workloads serverless. En esta charla mostré como ejecutar Azure Functions en un Kubernetes y escalarlos con KEDA, así como una estrategia alternativa escalando Jobs.
Keda o como convertir Kubernetess en ServerlessEduard Tomàs
Slides de mi charla en la netcoreconf de Valencia donde hablé de KEDA y de domo integrarlo con Azure functions, para desplegar workloads FaaS en un Kubernetes.
Charla en la NetCoreConf Barcelona 2020, donde hablé de memoria y rendimiento en .NET.
Empecé por el GC, luego novedades de C# 7.2 respecto a type values y finalmente Span<T>
En esta charla, basada en una que dió Mark Rendle, analizamos características de varios lenguajes de programación a la vez que las combinamos para crear eso... el "peor" lenguaje posible.
Charla que di en la Commit Conf 2019
Aplicaciones de consola fáciles? Más quisieramosEduard Tomàs
Charla en la NetCoreConf de Barcelona (Enero 2019) donde conté como desarrollar aplicaciones de consola avanzadas cross-platform. Expliqué las diferencias entre el terminal *NIX (Linux/MacOS) y la consola de Windows. Comenté termcap/terminfo, códigos de escape, modelos de color y novedades de Windows 10 como conpty.
Whar are microservices and microservices architecture (MSA) How we reach them? Are they the same or SoA or not? When to use them? What are the key characteristics?
Slides of my talk given in #Gapand2017 in Andorra
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
3. Grace Murray Hopper
1906 - 1992
Inventó el primer
compilador (A0) para el
UNIVAC 1 en 1951
Popularizó la idea de
lenguajes independientes
de la máquina
4. El primer bug
Se encontró una
arna atrapada en
una válvula del
Mark 2
5. Primeros ordenadores
• 1943 Colossus Mark 1,2,3
• 1946 ENIAC
• Primer Turing completo
• 1960 Circuito integrado
• 1971 Microprocesador
• 1981 IBM PC
6. Turing completo
Un ordenador es “turing completo” si tiene un poder computacional
equivalente a la máquina universal de Turing
• Si tuviese memória infinita
• Si tuviese almacenamiento infinito
Tesis Church-Turing: Todo algoritmo puede ser descrito mediante una
máquina universal de Turing.
Es el inicio de los ordenadores programables (arquitectura de Von
Neumann)
8. 70’s segunda generación
• Pascal (1970)
• C (1972)
• Prolog (1972)
• ML (1973)
• Scheme (1975)
• SQL (1978)
9. 80’s – Imperativos al poder
Se mejoran y combinan los paradigmas
inventados en las décadas 60-70.
• C++ (1980)
• MATLAB (1984)
• Eiffel (1985)
• Erlang (1986)
• Perl (1987)
15. Imperativos secuenciales
El código se ejecuta en el orden en que está
escrito
Control de flujo muy reducido (salta x líneas, salta
a la línea x)
No hay encapsulación de ningún tipo (todas las
variables globales)
Ejemplo: Ensamblador
16. Imperativos estructurados
Basados en los secuenciales añaden secuencias
básicas de estructura:
Secuencias
Bucles (for, while, loop)
Condicionales (if/switch)
No hay encapsulación de ningún tipo
Ejemplo: Basic
17. Imperativos procedurales
Código es básicamente un conjunto de procedimientos
(funciones).
Un procedimiento concreto es el “inicial”
El programa consiste en una secuencia de llamadas a
procedimientos
Encapsulación de estado de procedimiento (variables
locales)
Ejemplo: C, Pascal
18. Imperativos orientados a objetos
Código consiste en un conjunto de objetos que colaboran entre ellos.
Objeto consiste en identidad, estado y funcionalidad
Encapsulación a nivel de objeto (estado)
Basados en clases (Smalltalk, Java, C#, C++, Ruby)
Usan clases para definir la funcionalidad y posibles valores de los estados de los
objetos
Basados en objetos (JavaScript)
Se definen objetos y se especifica su funcionalidad y estado ad-hoc para cada
objeto
Todos ellos soportan las características “básicas” de la OOP (herencia,
polimorfismo, ...)
19. Declarativos lógicos
Lenguajes basados en la lógica formal
Programa es un conjunto de sentencias en
lógica formal indicando hechos y reglas
sobre un determinado problema
Ejemplo: Prolog
20. Declarativos funcionales
Código basado en funciones entendiendo por
función el concepto matemático de ella: sin
cambios de estado, inmutabilidad, sin efectos
colaterales (función “pura”)
Muy basados en recursión y en tratamiento de
listas (influencia matemática)
Ejemplos: Scala, F#, LISP, Scheme, Haskell
22. Tipado estático vs dinámico
En tipado estático...
1. El tipo de una variable es fijo e inmutable
2. El tipo de una variable es conocido en algun momento antes de
usarse
En tipado dinámico...
1. El tipo de una variable es mutable
2. El tipo de una variable no tiene por que ser declarado ni conocido
de antemano
23. Tipado fuerte vs tipado débil
No hay definición clara sobre lo que es tipado fuerte y tipado débil.
En general decimos que un lenguaje tiene tipado débil si las reglas sobre lo
que se puede hacer con los tipos no son estrictas. Variables de distintos tipos
pueden ser mezcladas en distintas operaciones. En caso contrario decimos
que el lenguaje tiene un tipado fuerte.
Pero muchos lenguajes ofrecen comportamientos mixtos.
No debe confundirse nunca con lenguajes dinámicos o estáticos
24. Primera clasificación...
Tipado estático Tipado dinámico
Tipado fuerte Scala, Haskell, Java, C++, Java, C# Ruby
Tipado débil Objective-C, Visual Basic (variant) JavaScipt
Algunos lenguajes con tipado estático fuerte ofrecen características de
tipado estático débil (C# con conversiones de tipo, C/C++ con punteros
void, ...)
Algunos lenguajes con tipado estático ofrecen características de tipado
dinámico (C# con dynamic, Objective-C con id, Swift con Any, ...).
25. Duck typing
Paradigma típico de algunos lenguajes en el que la presencia de
determinados métodos y propiedades en un objeto determina su
validez semántica, en lugar de la relación de herencia que pueda tener
con otros objetos.
Se resume en la frase: “Si camina como un pato y grazna como un
pato, entonces es un pato”.
Muy común en lenguajes dinámicos
26. Structural typing
Sistema de tipos estático en el que la presencia de determinados
métodos y propiedades en una clase determina su validez semántica.
Dos tipos se consideran “iguales” si tienen las mismas propiedades y
métodos con independencia de donde se declaran.
Viene a ser el “equivalente” al Duck Typing para lenguajes con tipado
estático.
Ejemplo: C++ a través de templates, Ocaml, Scala