Contenidos
- Concepto de programa informático
- Código fuente, código objeto y código ejecutable; máquinas virtuales
- Tipos de lenguajes de programación
- Características de los lenguajes más difundidos
- Fases del desarrollo de una aplicación: análisis, diseño, codificación, pruebas, documentación, explotación y mantenimiento, entre otras
- Proceso de obtención de código ejecutable a partir del código fuente; herramientas implicadas
Concepto de programa informático
Es la parte que no se puede tocar del ordenador (intangible), el software es un elemento lógico y se define como un conjunto de órdenes e instrucciones que cuando se ejecutan sirven para realizar alguna tarea, los programas sin ejecutar son simples archivos en disco.
Más información
- https://www.jesusninoc.com/11/16/introduccion-a-los-sistemas-informaticos-sistemas-operativos-monopuesto/#El_software
- https://www.jesusninoc.com/07/03/3-gestion-del-hardware-en-powershell/
- https://www.jesusninoc.com/07/05/5-gestion-del-software-en-powershell/
- https://www.jesusninoc.com/07/07/7-gestion-de-procesos-en-powershell/
- https://www.jesusninoc.com/06/23/compiling-a-c-program-on-the-bash/
- https://www.jesusninoc.com/01/21/script-de-hola-mundo-en-bash/
- https://www.jesusninoc.com/09/26/realizar-una-suma-de-dos-numeros-en-lenguaje-ensamblador-con-qtspim/
- https://www.yumpu.com/es/document/read/51065820/la-cpu-departamento-de-electronica-y-automatica-universidad-
Código fuente, código objeto y código ejecutable; máquinas virtuales
El código fuente es el conjunto de archivos que contienen órdenes o instrucciones que forman el programa. Para hacer cambios en un programa es necesario acceder al código fuente.
Las instrucciones son ejecutadas por la CPU que funciona del siguiente modo: obtiene la obtiene la primera instrucción de la memoria, la decodifica para determinar el código de operación y los datos, después la ejecuta y en algunos casos almacena el resultado. Este proceso se ejecuta continuamente hasta que se leen todas las instrucciones del programa.
Se llama código objeto al código que resulta de la compilación del código fuente. Puede ser en lenguaje máquina o bytecode, y puede distribuirse en varios archivos que corresponden a cada código fuente compilado.
Luego un enlazador (linker) se encarga de juntar todos los archivos de código objeto para obtener el programa ejecutable.
Código objeto: Conjunto de instrucciones y datos escritos en un lenguaje que entiende el ordenador directamente: binario o código máquina.
Provienen de la traducción de cierto código fuente, es un fragmento del programa final y es específico de la plataforma de ejecución.
Una máquina virtual es una máquina virtual de proceso nativo, es decir, ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial, el cual es generado por el compilador del lenguaje que estemos utilizando (por ejemplo Java).
Más información
- https://www.jesusninoc.com/07/02/2-programacion-en-powershell/#Variables
- https://www.jesusninoc.com/07/07/7-gestion-de-procesos-en-powershell/
- https://www.jesusninoc.com/06/23/compilar-un-programa-en-c-mediante-gcc-gnu-compiler-collection-desde-powershell/
- https://www.jesusninoc.com/06/23/compiling-a-c-program-on-the-bash/
- https://www.jesusninoc.com/07/02/usar-codigo-csharp-c-en-powershell/
- https://www.jesusninoc.com/10/20/ejecutar-un-cmdlet-de-powershell-desde-c-2/
- https://www.jesusninoc.com/11/25/crear-y-compilar-una-dll-con-microsoft-visual-c/
- https://www.jesusninoc.com/02/17/ejercicios-de-java-lanzar-programa-que-ejecute-ping/
- https://www.jesusninoc.com/02/17/ejercicios-de-java-lanzar-programa-que-ejecute-un-ping-dos-veces/
- https://www.jesusninoc.com/11/26/crear-compilar-y-ejecutar-una-dll-con-microsoft-visual-c-que-ejecute-un-cmdlet-de-powershell/
- https://www.jesusninoc.com/01/22/ejecutar-cmdlets-de-powershell-en-java/
- https://www.jesusninoc.com/01/17/ejecutar-un-script-de-powershell-desde-java/
- https://www.jesusninoc.com/06/17/ejecutar-un-script-en-powershell-que-esta-en-un-fichero-md-en-github/
- https://www.jesusninoc.com/12/08/crear-una-tarea-programada-en-windows-que-ejecute-un-script-de-powershell-cada-10-minutos-de-forma-indefinida-aunque-el-porcentaje-de-bateria-sea-bajo/
Ejercicio
Tipos de lenguajes de programación
El software se puede dividir en tres tipos:
- Software de sistema
- Software de programación. Hay diferentes lenguajes de programación, una posible clasificación por niveles es:
- Lenguaje máquina
- Lenguaje ensamblador
- Lenguaje de alto nivel
- Software de aplicación
Más información
- https://www.jesusninoc.com/07/03/3-gestion-del-hardware-en-powershell/
- https://www.jesusninoc.com/11/16/introduccion-a-los-sistemas-informaticos-sistemas-operativos-monopuesto/
- https://www.jesusninoc.com/03/04/convertir-un-numero-decimal-a-binario/
- https://www.jesusninoc.com/09/26/realizar-una-suma-de-dos-numeros-en-lenguaje-ensamblador-con-qtspim/
Características de los lenguajes más difundidos
Los 10 lenguajes más difundidos son:
Jan 2021 | Jan 2020 | Change | Programming Language | Ratings | Change |
---|---|---|---|---|---|
1 | 2 | C | 17.38% | +1.61% | |
2 | 1 | Java | 11.96% | -4.93% | |
3 | 3 | Python | 11.72% | +2.01% | |
4 | 4 | C++ | 7.56% | +1.99% | |
5 | 5 | C# | 3.95% | -1.40% | |
6 | 6 | Visual Basic | 3.84% | -1.44% | |
7 | 7 | JavaScript | 2.20% | -0.25% | |
8 | 8 | PHP | 1.99% | -0.41% | |
9 | 18 | R | 1.90% | +1.10% | |
10 | 23 | Groovy | 1.84% | +1.23% |
Más información
- https://www.jesusninoc.com/02/01/curso-de-java-con-ejemplos/
- https://www.jesusninoc.com/11/04/realizar-una-redireccion-con-javascript-en-base64-utilizando-start-process-y-google-chrome/
- https://www.jesusninoc.com/2018/01/06/ejecutar-un-cmdlet-de-powershell-desde-php/
- https://www.jesusninoc.com/2018/02/09/crear-compilar-generar-y-ejecutar-un-jar-de-java-que-ejecuta-un-cmdlet-de-powershell-utilizando-runtime/
- https://www.jesusninoc.com/2018/02/08/ejecutar-el-cmdlet-get-nettcpconnection-de-powershell-en-java/
- https://www.jesusninoc.com/02/11/hacking-wifi-with-powershell/
- https://www.jesusninoc.com/2018/02/11/hackear-wifi-con-powershell-2/
- https://www.jesusninoc.com/2018/01/12/obtener-la-clave-de-la-red-wifi-en-java-mediante-un-script-de-powershell-en-base64/
- https://www.jesusninoc.com/2018/02/13/hackear-wifi-con-powershell-script-convertido-en-base64/
Ejercicios
- https://www.jesusninoc.com/02/01/ejecutar-un-programa-desde-un-lenguaje-de-programacion/
- https://www.jesusninoc.com/02/01/uncover-tiny-urls/
Fases del desarrollo de una aplicación: análisis, diseño, codificación, pruebas, documentación, explotación y mantenimiento, entre otras
Modelos de desarrollo de software:
- Modelo de cascada
- Especificación de requisitos.
- Diseño del software.
- Construcción o Implementación del software.
- Integración.
- Pruebas (o validación)
- Despliegue (o instalación)
- Mantenimiento.
- Modelo de espiral
- Desarrollo iterativo e incremental
- Desarrollo ágil: el desarrollo ágil de software utiliza un desarrollo iterativo como base para abogar por un punto de vista más ligero y más centrado en las personas que en el caso de las soluciones tradicionales. Los procesos ágiles utilizan retroalimentación en lugar de planificación, como principal mecanismo de control. La retroalimentación se canaliza por medio de pruebas periódicas y frecuentes versiones del software.
- Codificación y corrección
- Orientado a la Reutilización
Más información
Ejercicios
- https://www.jesusninoc.com/02/01/diagramas/
- https://www.jesusninoc.com/02/01/scrum-aplicado-a-donaciones-de-una-fundacion/
- https://www.jesusninoc.com/02/01/entregables-scrum/
Proyectos e ideas
- https://www.jesusninoc.com/09/20/proyectos-e-ideas-scrum-sobre-una-fundacion-historias-de-usuario/
- https://www.jesusninoc.com/10/17/proyectos-e-ideas-scrum-sobre-una-fundacion-entregables-scrum/
- https://www.jesusninoc.com/10/24/proyectos-e-ideas-scrum-sobre-una-fundacion-artefactos-eventos-y-entregables/
- https://www.jesusninoc.com/11/07/proyectos-e-ideas-planificacion-de-proyectos-con-diagramas/
- https://www.jesusninoc.com/02/04/curso-de-introduccion-a-la-programacion-con-bloques-en-app-inventor-gratis-y-con-ejemplos/
Proceso de obtención de código ejecutable a partir del código fuente; herramientas implicadas
Una vez que tenemos el código fuente escrito, hay que compilarlo mediante una herramienta de compilación específica para el lenguaje en el que estamos programando, entonces se genera un código objeto que puede ser en lenguaje máquina o bytecode y son entendidos por el sistema operativo.
También hay un elemento importante para considerar y es un enlazador (linker) se encarga de juntar todos los archivos de código objeto para obtener el programa ejecutable.
Más información
- https://www.jesusninoc.com/06/23/compilar-un-programa-en-c-mediante-gcc-gnu-compiler-collection-desde-powershell/
- https://www.jesusninoc.com/06/23/compiling-a-c-program-on-the-bash/
- https://www.jesusninoc.com/02/09/compilar-y-ejecutar-una-clase-de-java-que-ejecuta-un-cmdlet-de-powershell-utilizando-runtime/
- https://www.jesusninoc.com/04/16/crear-y-compilar-una-dll-con-microsoft-visual-c-linea-de-comandos/
- https://www.jesusninoc.com/11/25/crear-y-compilar-una-dll-con-microsoft-visual-c/
- https://www.jesusninoc.com/02/09/crear-compilar-generar-y-ejecutar-un-jar-de-java-que-ejecuta-un-cmdlet-de-powershell-utilizando-runtime/
- https://www.jesusninoc.com/11/26/crear-compilar-y-ejecutar-una-dll-con-microsoft-visual-c-que-ejecute-un-cmdlet-de-powershell/
- https://www.jesusninoc.com/11/28/crear-compilar-y-ejecutar-una-dll-con-microsoft-visual-c-que-abre-notepad-desde-powershell/
- https://www.jesusninoc.com/02/08/crear-compilar-y-ejecutar-una-clase-de-java-que-ejecuta-un-cmdlet-de-powershell-utilizando-runtime/
- https://marvelapp.com/
- https://appinventor.mit.edu/
Ejercicios
- https://www.jesusninoc.com/app-inventor/
- https://www.jesusninoc.com/02/04/curso-de-introduccion-a-la-programacion-con-bloques-en-app-inventor-gratis-y-con-ejemplos/