Paradigmas de Programación
48 Questions
1 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuál de las siguientes características no forma parte de la programación orientada a objetos?

  • Polimorfismo
  • Encapsulación
  • Agregación (correct)
  • Herencia
  • ¿Cuál es la principal ventaja de utilizar Ruby en el desarrollo de software?

  • No tiene soporte para la programación orientada a objetos
  • Es un lenguaje de bajo nivel
  • Es difícil de leer
  • Su énfasis en la elegancia del código (correct)
  • ¿Qué representa el prefijo '@@' en la declaración de una variable en Ruby?

  • Variable estática
  • Variable de clase (correct)
  • Variable de instancia de clase
  • Variable global
  • ¿Cuál es una de las principales funciones de Pry en el desarrollo con Ruby?

    <p>Depuración e inspección interactiva</p> Signup and view all the answers

    En la programación en pareja, ¿cuál es el rol del 'conductor'?

    <p>Escribir código</p> Signup and view all the answers

    ¿Qué implica la gestión de dependencias en un proyecto de software?

    <p>Administrar bibliotecas y módulos externos necesarios</p> Signup and view all the answers

    ¿Para qué se utiliza la descripción de una tarea en Rake?

    <p>Proporcionar información sobre la tarea</p> Signup and view all the answers

    ¿Qué se busca con la comprobación de unidades de código (Unit Testing)?

    <p>Verificar el funcionamiento de pequeñas unidades de código</p> Signup and view all the answers

    ¿Qué ventaja tienen los lenguajes de programación de alto nivel sobre el lenguaje ensamblador?

    <p>Ofrecen mayor portabilidad entre sistemas.</p> Signup and view all the answers

    ¿Cómo se diferencian los lenguajes declarativos de los lenguajes imperativos?

    <p>Los lenguajes imperativos se enfocan en cómo lograr un resultado.</p> Signup and view all the answers

    ¿Por qué los lenguajes concurrentes no son una categoría separada?

    <p>Porque combinan características de varios paradigmas.</p> Signup and view all the answers

    ¿Cuál es la principal función de un compilador?

    <p>Traducir código fuente a código máquina.</p> Signup and view all the answers

    ¿Cómo funciona un intérprete?

    <p>Ejecuta el código fuente línea por línea.</p> Signup and view all the answers

    ¿Cuál es una desventaja de la compilación?

    <p>Requiere tiempo de compilación previo.</p> Signup and view all the answers

    ¿Qué caracteriza a la interpretación en comparación con la compilación?

    <p>No necesita un paso de compilación previo.</p> Signup and view all the answers

    ¿Cuál es la distinción principal entre compilación e interpretación?

    <p>La compilación traduce el código fuente completamente antes de la ejecución.</p> Signup and view all the answers

    ¿Qué caracteriza a la programación concurrente?

    <p>La ejecución aparente y no necesariamente simultánea de tareas.</p> Signup and view all the answers

    ¿Cuál de los siguientes es un estado del ciclo de vida de un proceso?

    <p>Listo</p> Signup and view all the answers

    ¿Qué significa que un proceso sea ligero (thread)?

    <p>Comparte recursos, pero tiene su propio contador de programa.</p> Signup and view all the answers

    ¿Para qué se utilizan las condiciones de Bernstein en la programación concurrente?

    <p>Para garantizar que no haya interferencia entre procesos ejecutados en paralelo.</p> Signup and view all the answers

    ¿Cuál es la diferencia principal entre paralelismo y concurrencia?

    <p>La concurrencia es solo una ilusión de simultaneidad.</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones sobre un proceso es correcta?

    <p>Un proceso es una instancia de un programa en ejecución con su propio espacio de memoria.</p> Signup and view all the answers

    ¿Qué implica la distribución en programación?

    <p>La ejecución de tareas en ubicaciones geográficas diferentes con comunicación remota.</p> Signup and view all the answers

    ¿Qué representan R(Si) y W(Si) en las condiciones de Bernstein?

    <p>El conjunto de variables leídas y escritas, respectivamente, por una instrucción.</p> Signup and view all the answers

    ¿Qué ocurre durante un interbloqueo?

    <p>Los hilos o procesos quedan atrapados esperando recursos que no se liberan.</p> Signup and view all the answers

    ¿Cuál es la función principal de la exclusión mutua?

    <p>Asegurar que solo un hilo acceda a una sección crítica a la vez.</p> Signup and view all the answers

    ¿Qué caracteriza a una sección crítica?

    <p>Es un fragmento de código que accede y modifica datos compartidos.</p> Signup and view all the answers

    ¿Qué significa la inanición en el contexto de los hilos?

    <p>Un hilo no puede acceder a recursos debido a un prioritario control de acceso.</p> Signup and view all the answers

    ¿Qué busca lograr la serialización en la ejecución de procesos?

    <p>Mantener la consistencia de los datos mediante la sincronización.</p> Signup and view all the answers

    ¿Qué define una clase en el contexto de programación orientada a objetos?

    <p>Una plantilla que incluye métodos y datos que los objetos heredan.</p> Signup and view all the answers

    ¿Qué es un objeto en Ruby?

    <p>Una instancia de una clase que representa una entidad.</p> Signup and view all the answers

    ¿Qué es el polimorfismo en programación?

    <p>La implementación de métodos en varias clases con el mismo nombre.</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones describe mejor el polimorfismo en programación orientada a objetos?

    <p>El polimorfismo permite que diferentes objetos respondan a la misma interfaz.</p> Signup and view all the answers

    ¿Qué diferencia principal existe entre tipo y clase en un objeto?

    <p>El tipo puede variar mientras que la clase permanece constante.</p> Signup and view all the answers

    ¿Cómo se define la herencia en programación orientada a objetos?

    <p>El proceso mediante el cual una clase hereda propiedades y métodos de otra.</p> Signup and view all the answers

    ¿Qué es un módulo en Ruby?

    <p>Conjunto de clases, funciones y constantes que pueden ser incluidos en otras clases.</p> Signup and view all the answers

    La herencia simple en Ruby implica que:

    <p>Una subclase hereda de una única superclase.</p> Signup and view all the answers

    ¿Qué función cumplen los espacios de nombres en programación?

    <p>Organizan y encapsulan identificadores únicos evitando conflictos.</p> Signup and view all the answers

    ¿Cómo se define un mixin en programación orientada a objetos?

    <p>Es una técnica que permite incluir métodos de un módulo en una clase.</p> Signup and view all the answers

    ¿Cuál de los siguientes métodos se incluye al utilizar el módulo Enumerable?

    <p>select</p> Signup and view all the answers

    ¿Cuál es una característica principal de los lambdas en Ruby?

    <p>Tienen un alcance de variables más restrictivo que los Procs.</p> Signup and view all the answers

    ¿Qué es la memorización en programación?

    <p>Una técnica de optimización que almacena resultados de funciones costosas.</p> Signup and view all the answers

    ¿Cómo se define la metaprogramación?

    <p>La técnica que permite crear programas que pueden escribir otros programas.</p> Signup and view all the answers

    ¿Qué son las funciones de orden superior?

    <p>Funciones que pueden tomar otras funciones como argumentos.</p> Signup and view all the answers

    ¿Qué papel juega la reflexión en un lenguaje de programación?

    <p>Permite a un programa ser su propio metalenguaje.</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones sobre los Procs es cierta?

    <p>Pueden ser llamados como bloques y son flexibles.</p> Signup and view all the answers

    ¿Qué implica el uso de la técnica de memorización?

    <p>Almacenamiento de resultados para evitar cálculos innecesarios.</p> Signup and view all the answers

    ¿Cuál es una diferencia clave entre un lambda y un Proc?

    <p>Los lambdas son menos flexibles en cuanto a los argumentos que aceptan.</p> Signup and view all the answers

    Study Notes

    Paradigmas de Programación

    • Los paradigmas de programación más importantes son: Declarativo, Funcional, Lógico, Imperativo y Orientado a Objetos (POO).
    • Declarativo: Se enfoca en qué se desea lograr, dejando al sistema decidir cómo. Evita estados mutables y estructuras de control explícitas.
    • Funcional: Se basa en funciones matemáticas, evaluando expresiones y usando funciones puras.
    • Lógico: Se apoya en reglas y hechos, donde el programa determina la solución mediante inferencia lógica.
    • Imperativo: Se enfoca en cómo realizar una tarea, especificando instrucciones para modificar el estado del programa. Usa comandos secuenciales y cambios de estado.
    • POO: Organiza un programa en objetos con datos (atributos) y comportamientos (métodos). Se centra en la reutilización de código, la herencia, polimorfismo y encapsulación.

    Lenguaje Ensamblador vs. Lenguaje Máquina

    • Lenguaje Máquina: Código binario (ceros y unos) ejecutado directamente por la CPU. Es específico para cada procesador.
    • Lenguaje Ensamblador: Usando mnemónicos (abreviaturas) para representar instrucciones de la CPU, es más legible para humanos que el lenguaje máquina y adaptable a diferentes arquitecturas.

    Lenguajes de Alto Nivel vs. Lenguaje Ensamblador

    • Lenguajes de alto nivel ofrecen abstracción, sintaxis más legible, portabilidad y permiten a los programadores concentrarse en la lógica del problema.
    • Son mejores que el lenguaje ensamblador en términos de abstracción, claridad y facilidad de programación.

    Lenguajes Declarativos vs. Imperativos

    • Declarativos: Se centran en "qué hacer" y describen el resultado deseado.
    • Imperativos: Se centran en "cómo hacerlo" y especifican los pasos detallados para lograr un resultado.

    Compiladores vs. Intérpretes

    • Compilador: Traduce el código fuente completo a código de máquina antes de la ejecución. Resulta en un archivo ejecutable independiente. Es más rápido, pero requiere un proceso previo de compilación.
    • Intérprete: Ejecuta el código fuente línea por línea, sin compilación previa. Es más flexible, pero generalmente más lento.

    Ventajas y Desventajas Compilación vs. Interpretación

    • Compilación:
    • Ventajas: Alta velocidad de ejecución, optimización de código.
    • Desventajas: Requiere tiempo de compilación, menos flexibilidad.
    • Interpretación:
    • Ventajas: Mayor flexibilidad, no necesita compilación previa.
    • Desventajas: Menor velocidad de ejecución, errores posibles en tiempo de ejecución.

    Conceptos Clave

    • Confirmación (Commit): Registro de cambios en un repositorio como Git.
    • Rama (Branch): Línea de desarrollo independiente en Git para trabajar en cambios sin afectar la principal.
    • Repositorio: Espacio donde se almacenan los archivos y la historia de cambios de un proyecto en Git.
    • Abstracción: Simplificar un concepto o proceso, enfocándose en los aspectos esenciales.
    • Procedimiento (subprograma): Código reutilizable para realizar una tarea específica.
    • Registro de Activación (Stack Frame): Estructura de datos para gestionar información de llamadas a funciones, incluyendo ámbito y variables locales.
    • Comprobación de Unidades (Unit Testing): Probar individualmente las unidades de código (funciones, métodos).
    • Desarrollo Dirigido por Pruebas (TDD): Metodología donde se escriben primero las pruebas para luego el código.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Posibles Preguntas de LPP PDF

    Description

    Explora los principales paradigmas de programación como Declarativo, Funcional, Lógico, Imperativo y Orientado a Objetos. Cada paradigma ofrece un enfoque único para resolver problemas en la programación, desde la gestión de estados mutables hasta la organización en objetos. Comprender estos paradigmas es esencial para un desarrollo de software efectivo.

    More Like This

    Use Quizgecko on...
    Browser
    Browser