Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • 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
G#, a graphical approach to functional programming
Jönköping University, School of Engineering, JTH, Computer Science and Informatics.
2019 (English)Independent thesis Basic level (degree of Bachelor), 10 credits / 15 HE creditsStudent thesis
Abstract [en]

The purpose of this bachelor thesis was to present a solution for how a graphical programming language with a functional mindset can be constructed with the help of inspiration from functional programming. An artefact was created by using design science as a research methodology and has in several iterations gone through development and testing to reassure the outcome works as intended. The graphical programming language which has been developed is a language that allows the programmer to code in depth, functions are written as blocks inside blocks and the language is made compact. A code structure in a JSON-format was developed at the same time as G#, allowing it to be presented in a texted data format. The purpose of the JSON-format was to enable execution of G# and the transformation to a text-based programming language. Implications can be made from this study by learning about how a graphical programming language can be built from scratch and what difficulties needs to be tackled to get a result that works as intended. G# was developed to only support a few selected and commonly used functions in programming due to time limitations. The final version of G# in this study can do calculations, handle lists and perform less complex algorithms. Under the development of G#’s graphical functions, the free tool Draw.io was used. Unknowingly from the start, Draw’s limitations made it not perform as expected. Therefore, it is recommended to investigate which available tools are most suited for the construction of the graphical functions before development begins.

Abstract [sv]

Syftet med examensarbetet var att med hjälp av inspiration från funktionell programmering, presentera en lösning på hur ett nytt grafiskt programmeringsspråk med ett funktionellt djup och tänk kan konstrueras. Med hjälp av designbaserad forskning har en artefakt tagits fram som genomgått iterationer av utveckling och testning för att uppnå ett resultat som fungerar som tänkt. Det grafiska språket som tagits fram kallas för G# och är ett språk som tillåter programmeraren att programmera på djupet, funktioner skrivs som block inuti block och språket blir kompakt. Tillhörande G# så konstruerades en struktur i ett JSON-format för hur funktioner i G# kan representeras i ett textat dataformat. Syftet med JSON-formatet var att möjliggöra exekvering av G# och transformering till ett textbaserat programmeringsspråk. Av denna studie kan det dras lärdomar kring hur ett programmeringsspråk kan byggas upp från grunden och vilka svårigheter som måste tacklas för att få ett resultat som fungerar. På grund av begränsning av tid så utvecklades endast vanligt förekommande funktioner inom programmering till G#, språkets slutversion kan göra beräkningar, sköta hantering av listor och utföra enklare algoritmer. Vid utvecklingen av G# användes verktyget Draw.io för att konstruera funktioner. Verktyget var begränsat i funktionalitet och presterade inte enligt förväntan. Därför borde en undersökning som svarar på vilket typ av verktyg som är mest lämpligt för utvecklingen av de grafiska funktionerna göras innan utvecklingen börjar.

Place, publisher, year, edition, pages
2019. , p. 48
Keywords [en]
VPL visual programming language graphical modelling F# G# Scratch Luna NoFlo
National Category
Other Engineering and Technologies not elsewhere specified
Identifiers
URN: urn:nbn:se:hj:diva-43359ISRN: JU-JTH-DTA-1-20190069OAI: oai:DiVA.org:hj-43359DiVA, id: diva2:1297941
External cooperation
Evry
Subject / course
JTH, Computer Engineering
Supervisors
Examiners
Available from: 2019-03-27 Created: 2019-03-21 Last updated: 2019-03-27Bibliographically approved

Open Access in DiVA

G#, a grapchical approach to functional programming(1538 kB)17 downloads
File information
File name FULLTEXT01.pdfFile size 1538 kBChecksum SHA-512
8429387cb82bd2e62bec79a68bfb6282c48125f0b4f617cea0bda2d9cb87c19f68441eba60ba17189407da79cdb3bfb48900fe69f2e96e49ab3349ad98986787
Type fulltextMimetype application/pdf

By organisation
JTH, Computer Science and Informatics
Other Engineering and Technologies not elsewhere specified

Search outside of DiVA

GoogleGoogle Scholar
Total: 17 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: 76 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • 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