liu.seSearch for publications in DiVA
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • oxford
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Implementation och utökning av en typhärledningsalgoritm för Common Lisp
Linköping University, Department of Computer and Information Science.
2010 (Swedish)Independent thesis Basic level (degree of Bachelor), 10 credits / 15 HE creditsStudent thesis
Abstract [sv]

Programmeringsspråk har oftast ett typsystem och kan välja att använda olika statiska verktyg att analysera koden. Statiska språk utför typkontroller innan körtillfället och kan då ge garantier att typfel inte kan förekomma, dynamiska språk gör däremot dessa kontroller under körtillfället och om ett dåligt beteende upptäcks avbryts programmet.

Eftersom kontrollerna görs under körtillfället skrivs inte typsignaturer ut i dynamiska språk. Ett dynamiskt språk kan vara mer flexibelt än ett statiskt språk eftersom inga garantier ges. Eftersom inga typsignaturer skrivs ut går det att skriva program på ett mer koncist sätt. I statiska språk tvingas oftast användaren att skriva ut typerna explicit för variabler och funktioner.

Typhärledning är processen att härleda typer för uttryck. En typhärledningalgoritm kommer att undersökas, hur kraftfull algoritmen är samt hur algoritmen kan utökas för att klara av flera konstruktioner och ett kraftfullare språk. Typhärledningsalgoritmen kommer att implementeras för Common Lisp. Common Lisp ger inga typgarantier och inga typsignaturer skrivs ut. Alla typer kommer att härledas vilket innebär att vi gör om en delmängd av Common Lisp till ett statiskt språk.

Algoritmen kommer att utökas för att klara av polymorfism, closures, listor och par. Rapporten undersöker vilka ändringar som behöver göras för att stödja konstruktionerna, hur vi kan göra ändringarna hur de kan implementeras.

Fördelar med att ha typhärledning är att användaren slipper skriva ut typsignaturer och kan få ökad produktivitet. Den mest generella typsignaturen kommer alltid att härledas och funktioner som är polymorfa kommer att upptäckas automatiskt. Typhärledningsalgoritmen kommer att även typkontrollera programmet, och kan ge garantier att inga problem kommer att uppstå. Verktyget kommer även att skapa ett nytt program med typsignaturer utskrivna som kompilatorn kan använda för att generera effektivare kod.

Place, publisher, year, edition, pages
2010. , 47 p.
Keyword [sv]
typhärledning, algoritm, typhärledningsalgoritm, typsystem, implementation, lisp, common lisp, examensarbete, kandidatexamensarbete
National Category
Computer Science
Identifiers
URN: urn:nbn:se:liu:diva-57819ISRN: LIU-IDA/LITH-EX-G--10/018--SEOAI: oai:DiVA.org:liu-57819DiVA: diva2:327875
Presentation
2010-06-16, Alan Turing, Linköpings universitet, Linköping, 10:15 (Swedish)
Uppsok
Technology
Supervisors
Examiners
Available from: 2010-07-07 Created: 2010-06-30 Last updated: 2010-07-08Bibliographically approved

Open Access in DiVA

fulltext(493 kB)144 downloads
File information
File name FULLTEXT01.pdfFile size 493 kBChecksum SHA-512
a9a697fc38abb1ec7252a0f7319c6b85d3679337851c7880a4e675bebcb49437eec3f7a13bceb9da47c5f485f2f3d15e105af508bab762c703c65e990c4d3d96
Type fulltextMimetype application/pdf

Search in DiVA

By author/editor
Ståhlberg, Simon
By organisation
Department of Computer and Information Science
Computer Science

Search outside of DiVA

GoogleGoogle Scholar
Total: 144 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 194 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • oxford
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf