Advanced search options

Advanced Search Options 🞨

Browse by author name (“Author name starts with…”).

Find ETDs with:

in
/  
in
/  
in
/  
in

Written in Published in Earliest date Latest date

Sorted by

Results per page:

You searched for subject:(destructive update). One record found.

Search Limiters

Last 2 Years | English Only

No search limiters apply to these results.

▼ Search Limiters


University of Melbourne

1. GIUCA, MATTHEW. Mars: an imperative/declarative higher-order programming language with automatic destructive update.

Degree: 2014, University of Melbourne

For years, we have enjoyed the robustness of programming without side-effects in languages such as Haskell and Mercury. Yet in order to use languages with true referential transparency, we seem to have to give up basic imperative constructs that we have become accustomed to: looping constructs, variable update, destructive update of arrays, and so on. In this thesis, we explore the design of programming languages which combine the benefits of referential transparency with imperative-style programming. First, we present a framework for classifying programming languages according to the benefits of pure programming. Our definition applies to a wider range of languages than common terms such as “declarative” and “pure,” capturing the specific benefit of prohibiting global side-effects, without ruling out imperative programming languages. Second, we present the design and implementation for a new programming language, Mars, which allows the programmer to write imperative-style code using Python syntax, yet has the benefits of a language with referential transparency. The design philosophy behind the language, and its future directions, are discussed. Third, we note the tendency for imperative programs to use array update operations, which are very slow in a naïve implementation of any language such as Mars. We explore static analyses for automatically converting slow array copying code into fast destructive update instructions, and present the design and implementation of an optimiser for Mars, which improves on previous work by precisely handling higher-order functions, including those that both accept and return functions. The sum of this work is an efficient imperative language with the demonstrable software engineering benefit of non-interfering functions.

Subjects/Keywords: programming languages; imperative programming; declarative programming; destructive update; compile-time garbage collection

Record DetailsSimilar RecordsGoogle PlusoneFacebookTwitterCiteULikeMendeleyreddit

APA · Chicago · MLA · Vancouver · CSE | Export to Zotero / EndNote / Reference Manager

APA (6th Edition):

GIUCA, M. (2014). Mars: an imperative/declarative higher-order programming language with automatic destructive update. (Doctoral Dissertation). University of Melbourne. Retrieved from http://hdl.handle.net/11343/43263

Chicago Manual of Style (16th Edition):

GIUCA, MATTHEW. “Mars: an imperative/declarative higher-order programming language with automatic destructive update.” 2014. Doctoral Dissertation, University of Melbourne. Accessed January 27, 2021. http://hdl.handle.net/11343/43263.

MLA Handbook (7th Edition):

GIUCA, MATTHEW. “Mars: an imperative/declarative higher-order programming language with automatic destructive update.” 2014. Web. 27 Jan 2021.

Vancouver:

GIUCA M. Mars: an imperative/declarative higher-order programming language with automatic destructive update. [Internet] [Doctoral dissertation]. University of Melbourne; 2014. [cited 2021 Jan 27]. Available from: http://hdl.handle.net/11343/43263.

Council of Science Editors:

GIUCA M. Mars: an imperative/declarative higher-order programming language with automatic destructive update. [Doctoral Dissertation]. University of Melbourne; 2014. Available from: http://hdl.handle.net/11343/43263

.