Algorismes
Segons l’institut d’estudis catalans un algorisme és un conjunt de regles per a resoldre un problema en un nombre finit de passos. Dins del món de la informàtica usem els algorismes per a resoldre problemes i crear programari perquè la resolució d’aquests sigui més ràpida i eficient, ja que usem un ordinador que ens ho facilita.
Cada algorisme pot tenir estructura diferent, no obstant, tots estan composats per les següents parts principals:
- Entrada
- Procés
- Sortida
Dins dels tipus d’algorisme, existeixen una sèrie de caràcteristiques comuns algunes de les quals podríen ser les següents:
- Exactitud: ordre clar de l’execució dels passos.
- Definit: la solució ha de ser la mateixa sigui quin sigui el moment d’execució de l’algorisme.
- Complet: Dins la solució, considerant totes les variables del problema.
- Finit: un algorisme ha de tenir un nombre finit de passos.
- Entenedor: les instruccions han de ser clares i llegibles.
Llenguatges de programació
Un llenguatge de programació és una forma de comunicar-nos amb un ordinador per a donar-li unes ordres que programem en aquest.
Existeixen diferents tipus de llenguatges de programació com C, C++, Python, Java, etcètera. A la següent imatge podem veure la cronologia dels diferents llenguatges de programació.
El programari normalment es dissenya o escriu a través d’un programa que anomenem IDE que es diu Entorn de Desenvolupament Integrat. Dins d’aquest entorn podem trobar un editor de text, un compilador i una depuradora pel llenguatge que estem emprant.
Alguns exemples són Eclipse, Microsoft Visual Studio o Android Studio.
Paradigmes de la programació
Cada llenguatge de programació té les seves normes d’estil i sintaxi, a partir d’aquí, aquests són els diferents paradigmes:
Paradigma Imperatiu | Paradigma Declaratiu |
Programació Estructurada | Programació Lògica |
Programació Modular | Programació Funcional |
Programació Orientada a Objectes | Reactiva |
Paradigma Imperatiu
Els programes consisteixen en una successió d’instruccions que venen donades pel programador. El programador escriu pas per pas tot el que farà el programa.
- Estructurada: el fluxe de control es defineix mitjançant bucles, condicions i subrutines.
- Modular: consisteix en dividir el programa en subprogrames amb la fi de fer el programa més manejable i llegible. Això ajuda a resoldre problemes més complexes.
- Orientada a Objectes: es construeixen models d’objectes que representen elements del problema a resoldre, que tenen característiques i funcions.
Alguns exemples de llenguatges són: Pascal, COBOL, FORTRAN, C o C++.
Paradigma Declaratiu
Aquest paradigma no necessita definir algorismes, ja que descriu el problema en comptes de buscar-ne una solució d’aquest. S’usa el principi del raonament lògic per a respondre les preguntes plantejades a la qüestió.
- Lògica: el resultat desitjat es declara com a resposta d’una pregunta sobre un sistema de fets i regles.
- Funcional: el resultat desitjat es declara com a valor d’una sèrie d’aplicacions de funció.
- Reactiu: es declara el resultat amb fluxos de dades i la propagació del canvi.
Alguns exemples de llenguatges són: Prolog, Lisp, Java o Kotlin.
Llenguatges Compilats i Interpretats
Compilats: són convertits directament a codi màquina que el processador pugui executar. Com a resultat solen ser més ràpids i eficients en comparació amb els interpretats. Necessiten compilar-se cada cop que es fa una actualització al codi. Com a exemples de llenguatges hi ha C, C++, Erlang, Haskell o Rust.
Interpretats: executen línia per línia el programa i a la vegada cada comandament. Al principi eren bastant lents, però ara s’està innovant i la diferencia de temps s’ha reduït.
Llenguatges d’alt nivell i baix nivell
Alt nivell: estan pensats per a ser entesos per l’humà i la sintaxi és entenedora.
Baix nivell: estan pensats per a interactuar amb la màquina, per això no són tan fàcils d’entendre.
Bibliografia
https://dlc.iec.cat/
https://ude.edu.uy/que-son-algoritmos/
https://www.ui1.es/blog-ui1/para-que-sirve-un-algoritmo-en-informatica
https://es.wikipedia.org/wiki/Algoritmo
https://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n
https://desarrollarinclusion.cilsa.org/tecnologia-inclusiva/que-es-un-lenguaje-de-programacion/
https://profile.es/blog/que-son-los-paradigmas-de-programacion/ https://www.freecodecamp.org/espanol/news/lenguajes-compilados-vs-interpretados/ https://daguilar.dev/blog/programacion_lenguajes-de-bajo-nivel-frente-a-los-lenguajes-de-alto-nivel/