Intro a LP Flashcards
(30 cards)
¿Cuáles fueron los primeros lenguajes orientados a objetos?
Simula Smalltalk C++ Eiffel Java
¿Que es un lenguaje de programación?
Es un conjunto de signos y símbolos, sirve para hacer interfaz, dar comandos y generar programas que describen o implementan algoritmos sin necesidad de usar lenguaje máquina
¿En qué consiste el paradigma imperativo? Cuáles lenguajes pertenecen A este paradigma?
Está basado en la máquina de Von Neumann, es una ejecución secuencial del programa, tiene variables de memoria asignación, y entrada y salida típicamente procedural, tienen mejor desempeño.
Algunos son C, FORTRAN, ADA, PASCAL, ALGOL
¿Cuáles son las tres características de un lenguaje de programación?
Función y objetivo: involucra un computador o dispositivo externo ejecutando un algoritmo.
Abstracción: abstracciones para definir y manipular estructuras de datos o flujo de ejecución.
Poder expresivo: un lenguaje de programación Turing incompleto puede realizar los cómputos que hace una máquina de Turing
¿Que es un paradigma de programación?
Son conceptos y aspectos de cómo están estructurados los programas
¿Cuáles son los 5 paradigmas de programación?
Imperativo, Procedural, Orientado a obj, Funcional y Declarativo
¿En qué consiste el paradigma orientado a objetos? ¿Que lenguajes pertenecen a este paradigma?
Consiste en conjuntos de objetos o piezas interactúan controladamente intercambiando mensajes extendiendo el paradigma imperativo
Lenguajes OO:
Java, C++, Smalltalk, Ruby
En qué consiste el paradigma funcional? Que lenguajes pertenecen a este paradigma?
El paradigma funcional está basada en cálculo de Lambda, uso de funciones y recursión.
Algunos lenguajes funcionales son:
Scheme, Haskell y LISP
En qué consiste el paradigma lógico? Que lenguajes pertenecen a este paradigma?
Está basado en cálculo de predicados (lógica simbólica) fundamentalmente basado en reglas y hechos. Dentro de este paradigma se encuentra el declarativo, En este se declara lo que se quiere hacer, no como, es más abstracto al no especificar un algoritmo.
Algunos lenguajes: Prolog, SQL
En qué consiste la Programación basada en eventos?
EL flujo de control está determinado por eventos que procesa el manejador de eventos. Por ejemplo interfaces gráficas, manejo de interrupciones y sistema de sensores, GO Y RUST
¿En qué consiste la programación concurrente?
Es un conjunto de procesos cooperativos que se pueden ejecutar en paralelo. Se requiere sincronización de recursos compartidos.
Usados para sistemas operativos y distribuidos
Qué es la taxonomía de memoria de un lenguaje?
Esto es lo que determina como se administra la memoria de un lenguaje de programación. Existen tres tipos de memoria: memoria estática, memoria de stack y memoria de heap.
¿Cuáles fueron los primeros lenguajes de alto nivel?
Fortran
Lisp
Cobol
En qué consiste la programación visual?
Se crean programas manipulando objetos, gráficos, está integrado con otros lenguajes. Ej: KODU, LabView
Cómo se puede reducir la carga cognitiva de un programa?
Esto se puede realizar a través de la modularización, la compilación separada, reutilización, y ambientes de desarrollo.
Cuáles son los tipos de tokens que existen?
Existen las palabras claves y reservadas, literales y constantes, identificadores, símbolos de operadores, símbolos especiales y comentarios.
Qué aspectos prácticos se deben considerar de la sintaxis de un lenguaje?
Primero, no confundir palabras reservadas con identificadores pre definidos, segundo reconocimiento de largo de un identificador, formato libre versus formato fijo (afecta posición/identación)
Qué ofrecen los lenguajes de programación más populares?
Estos ofrecen abstracciones, distintos tipos de datos, estructuras de control, y tipos de datos abstractos
Nombra los criterios de evaluación que existen para un lenguaje de programación:
#1 Simplicidad: qué tan simple es en sintaxis y construcciones. #2 Ortogonalidad: combinar conjuntos y operadores. #3 Tipos de datos: ofrece tipos de datos adecuados. #4 Diseño de sintaxis: palabras especiales, son claras o confusas? #5 Soporte de abstracciones: esconder detalles de la implementación. #6 Expresividad: pocas líneas de código, permiten computación compleja? #7 Chequeo de tipos: chequea de forma dinámica o estática? #8 Manejo de excepciones: comportamiento anómalo cómo responder a eso. #9 Restricción de alias: podemos crear nombres para otras variables?
Qué datos ofrece un lenguaje de programación popular?
Tres tipos: primitivos, simples, estructurados.
Cómo es el proceso de análisis léxico y sintáctico? Cuáles son sus fases?
El proceso de reconocimiento de sintaxis tiene típicamente dos fases: scanning y parsing.
Scanning: Análisis Léxico, se reconocen tokens
Parsing: Análisis sintáctico, el traductor procesa los Tokens y determina si el programa está sintácticamente correcto.
¿Que estructuras de control ofrece un lenguaje de programación popular?
Ofrecen sentencias, estructuras de control, abstracción de procedimientos y concurrencia
Cuáles son los tres aspectos de diseño de un lenguaje de programación?
1- Arquitectura: donde se ejecuta el programa? Modelo de Neuman, imperativo es lo más común y mejor.
2- Estándares: los lenguajes de programación populares deben estandarizarse, que sean más portables y poseer datos primitivos, bibliotecas pero eso hace más pesado la innovación del lenguaje.
3-Sistemas legados: el lenguaje es compatible a sintaxis anteriores, permite código legado?
Cuáles son los elementos básicos de un lenguaje formal?
Los elementos básicos son: sintaxis, semántica, alfabeto y una gramática formal.