Llenguatge de programaci??
De Viquip??dia
Un llenguatge de programaci?? ??s un llenguatge inform??tic usat per controlar el comportament d'una m??quina, normalment un ordinador. Cada llenguatge t?? una s??rie de regles sint??ctiques i sem??ntiques estrictes que cal seguir per escriure un programa inform??tic, i que en descriuen l'estructura i el significat respectivament. Aquestes regles permeten especificar tant la classe de dades amb qu?? treballar?? el programa com les accions que realitzar??. Mentre que alguns llenguatges es defineixen per una especificaci?? formal (un document), altres s??n definits oficiosament per una implementaci?? concreta (un compilador).
Actualment existeixen milers de llenguatges de programaci??, i se'n creen de nous cont??nuament. Alguns dels m??s extesos s??n, discutiblement, ASM, C, C++, C# i Java.
Taula de continguts |
[edita] Classificaci?? alt nivell-baix nivell
Els llenguatges se solen classificar principalment en llenguatges de baix nivell, que son molt propers al codi binari utilitzat internament per un tipus d'ordinador determinat, i llenguatges d'alt nivell, que son m??s propers al llenguatge hum?? i m??s independents del tipus d'ordinador.
La difer??ncia entre llenguatges de baix i alt nivell es fa evident comparant dos programes que escriuen "Hola" en pantalla, el primer usant llenguatge assemblador per m??quines x86 (baix nivell),
MODEL SMALL IDEAL STACK 100H
DATASEG HW DB 'Hola!$'
CODESEG MOV AX, @data MOV DS, AX MOV DX, OFFSET HW MOV AH, 09H INT 21H MOV AX, 4C00H INT 21H END
i el segon utilitzant un llenguatge d'alt nivell (Python),
print "Hola!"
Els llenguatges d'alt nivell es poden classificar tamb?? segons el tipus de model de programaci?? que utilitzen (procedimentals, funcionals, orientats a objectes, etc.). Tamb?? hi ha llenguatges de marcatge, que no s??n llenguatges de programaci??, sin?? que s'utilitzen per estructurar o donar forma a un text. Avui en dia existeixen gran quantitat de llenguatges, m??s o menys especialitzats en diferents tasques.
[edita] Sistema de tipatge
El sistema de tipus defineix com un llenguatge de programaci?? classifica els valors i expressions en tipus, com els manipula, i com hi interacciona. Generalment aix?? inclou la descripci?? de les estructures de dades que el llenguatge pot construir. El disseny i estudi matem??tic d'aquests sistemes ??s conegut com la Teoria de tipus (type theory).
S'ha de recordar per?? que els computadors digitals moderns emmagatzemen internament totes les estructures simplement com a uns i zeros (binari)
[edita] Llenguatges tipats vers llenguatges no tipats
Un llenguatge ??s tipat si l'especificaci?? de cada operaci?? defineix a quins tipus de dades una operaci?? ??s aplicable, amb l'implicaci?? que no ??s aplicable als altres tipus.[1] Per exemple, "aquest text entre cometes" ??s un string
. En la majoria de llenguatges de programaci??, dividir un n??mero per un string
no t?? sentit. En conseq????ncia la majoria dels llenguatges de programaci?? moderns rebutjaran qualsevol intent de dur a terme una operaci?? com aquesta. En alguns llenguatges, l'operaci?? sense sentit es detectar?? en temps de compilaci?? (comprovaci?? de tipus "est??tica") i ser?? rebutjada pel compilador. Mentre que en d'altres, l'operaci?? sense sentit es detectar?? en temps d'execuci?? (comprovaci?? de tipus "din??mica"), resultant en una excepci?? en temps d'execuci?? (runtime exception
).
Un cas especial de llenguatges tipats s??n els llenguatges mono-tipats. Normalment s??n llenguatges de script o de marcatge, com Rexx o SGML, i nom??s tenen un tipus de dades - majorit??riament, cadenes de car??cters que s??n usats tan per dades simb??liques com num??riques.
En constrast, un llenguatge no tipat, com la majoria de llenguatges ensambladors, permet qualsevol operaci?? sobre qualsevol tipus de dades, considerades com a seq????ncies de bits de mides v??ries. Llenguatges d'alt nivell no tipats inclouen BCPL i algunes varietats de Forth.
A la pr??ctica, mentre que pocs llenguatges es consideren tipats des del punt de vista de la Teoria de tipus (verificar o rebutjar totes les operacions), la majoria del llenguatges moderns ofereixen un cert grau de tipatge. Molts llenguatges de producci?? ofereixen alguna manera de subvertir o fer un bypass al sistema de tipus.
[edita] Classificaci?? dels principals llenguatges de programaci??
- Llenguatge m??quina
- Llenguatge simb??lic
- Llenguatges de programaci?? d'alt nivell
- Llenguatges de programaci?? esot??rics
[edita] Refer??ncies
- ??? Andrew Cooke. An Introduction to Programming Languages. Data d'acc??s June 30, 2006.
[edita] Vegeu tamb??
[edita] Enlla??os externs
- LiteratePrograms.org (angl??s) Wiki d'algorismes implementats en diferents llenguatges de programaci??.
- Computer Languages History (angl??s) L??nia de temps dels 50 principals llenguatges de programaci??.
- The Language List (angl??s) Informaci?? recompilada de 2.500 llenguatges de programaci??.
Llenguatges de programaci?? |
---|
Ada | ALGOL | Assemblador | Awk | Basic| BCPL | C | C++ | C# | Cobol | D | Delphi | Eiffel | Forth | Fortran | Haskell | Java | Lisp | Logo | MAGIC | Mercury | Miranda | Modula-2 | Oberon | Ocaml | Pascal | PHP | Perl | Prolog | Python | Rexx | Ruby | Scala | Smalltalk | Altres llenguatges... |