Maarten M. Fokkinga
NOTE: Up to 2014, this web site was located at http:///www.cs.utwente.nl/~fokkinga/
and http://wwwhome.ewi.utwente.nl/~fokkinga/ and http://wwwhome.cs.utwente.nl/~fokkinga .
|
|
Maarten Fokkinga has supervised the following PhD students:
Currently (2011) Maarten Fokkinga is member of the Database group. He retired from the university by September 2013.
(Students wrote quite another profile -- in Dutch.)
Citation index.
The scientific literature digital library ResearchIndex can be searched for citations (for example to my work or my work) or documents or authors and so on.
ResearchIndex also maintains the list of the most cited computer science authors, from which the list of most cited authors from UT-Informatica can be generated (in which I took the third to fourth place during the years 2000-2006).
My Erdös number is at most 5 and, actually, just 4 via Lambert G. L. T. Meertens.
In 1978, Edsger W. Dijkstra was positive about my presentation at the meeting of the IFIP Working Group on "Programming Methodology", as reported on the second page of trip report EWD665 (html).
Formally published and/or technical reports (interesting unpublished work follows after this list):
Abstract. A citation index is one way of the many possibilities to measure ``the quality'' of a researcher: count the citations to his work. The notion of citation index has many derived concepts, one of which is the h-index. In this note we consider one particular wish for a new definition of citation index of an author: when counting citations to the author's work, weigh (= multiply) each citation by the citation index of the citing author. We show how the weighted citation index can be computed in the MapReduce framework.
@unpublished{mmf2013c ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {{Weighted citation index}} ,year = 2013 ,pages = {{1--13}} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2013c})
Abstract. In a seminal paper (A Co-Relational Model of Data for large Shared Data Banks. Comm. of the ACM, 54(4):49--58, April 2011), Erik Meijer enthusiastically shows an interesting relation between the well-known SQL and OO representations of facts from the real world. Phrased in terms of category theory, these turn out to be dualizations of each other (hence he speaks of SQL and coSQL), and many of their properties are in some sense dual to each other. This note enumerates most of his ideas in a quite different and more concise style, and might be used as a compendium to his paper.
@unpublished{mmf2011p ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {{SQL versus coSQL --- a compendium to Erik Meijer's paper}} ,year = 2011 ,pages = {{1--9}} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2011p})
Abstract. The explanation by Kifer et al (in Database Systems: An Application-Oriented Approach, Complete Version, 2nd edition. Addison-Wesley, 2006) for calculating the total cost and amount of buffers of a query execution plan (is elegant, clear, well-phrased, correct, instructive and so on, but) does not take care of pipelining and the available buffers in a systematic way, and, instead, needs ad hoc reasoning for these aspects. We show a method that is systematic, easily to be automated, and needs no ad hoc reasoning when applied.
@unpublished{mmf2011o ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {{Cost and feasibility estimations of an execution plan}} ,year = 2011 ,pages = {{1--15}} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2011o})
Abstract. Suppose you are given a number of points in a plane and want to have those lines that each contain a large number of the given points. The Hough transform is a computerized procedure for that task. We show how the original procedure could have been derived. The derivation has the following notable properties: the crucial genuine idea falls out quite naturally in the course of our derivation, and we exploit the addition of functions.
@article{mmf2005d-jfp ,author = "Maarten Fokkinga" ,journal = "Journal of Functional Programming" ,month = mar ,number = 2 ,pages = "129-133" ,title = "The {Hough} transform" ,volume = 21 ,year = 2011 ,issn = "0956-7968" }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2005d-jfp})
Abstract. Repeating the work of Meertens ``Calculate Polytypically!'' we show how to define in a few lines a very general ``aggregation'' function. Our intention is to give a self-contained exposition that is, compared to Meertens' work, more accessible for the uninitiated reader who wants to see the idea with a minimum of formal details.
@unpublished{mmf2011d ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {Aggregation --- polymorphic and polytypic} ,year = 2011 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2011d})
Abstract. Given are three numbers N,p,q with p at most 3N and q less than N. The problem is to determine the number of ways that one can choose p elements from a sequence of three sets of size N in such a way that in the first set more than p elements are chosen and in each of the second and third set at most q.
@unpublished{mmf2011c ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {Restricted Choices} ,year = 2011 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2011c})
Abstract. In a 12-line derivation we show how the (i+1)th approximation of the PageRank function can be calculated from the i-th approximation. The calculation is concise, machine checkable, and human readable at the same time. (We also provide the 3-page intuition that suggested this approach.)
@unpublished{mmf2010e ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {MapReduce formulation of PageRank} ,year = 2010 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2010e})
Abstract. What I will discuss falls in the range of Functional Programming--{}--Theory of Datatypes, and is meant to be \emph{background} info for the MapReduce paradigm.
@unpublished{mmf2009n1 ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {Background info for Map and Reduce} ,year = 2009 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2009n1})
Abstract. In terms of a concrete example we derive a greedy algorithm for a hard problem. The problem is to compute a value which minimizes a given expression, and has exponential time complexity. The greedy algorithm computes a sub-optimal solution but has polynomial time complexity, and is fast enough for practical applications. The concrete problem is: the formation of teams from a given set of players such that, when repeated many times, each player is equally often teammate of each other player. The algorithm is easily coded in about thirty lines in a functional programming language. A few simple experiments give an indication of the quality of the greedy algorithm, and of some variants which trade quality for speed. We also abstract from the particulars of the concrete problem, and formalize our greedy algorithm in a general and abstract setting.
@unpublished{mmf2009l ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {A Greedy Algorithm for Team Formation that is Fair over Time} ,year = 2009 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2009l})
Abstract.
L\"ammel~\cite{lammel2008} gives an elaborate discussion of the word count algorithm, resulting in an elaborate Haskell program taking 27 lines plus some libraries.
He uses types to guide the construction of the word count algorithm as intended by Dean and Ghemawat~\cite{dean2004}.
In contrast we use the word count specification to derive the intended word count algorithm.
Another difference is that all our programs are ``one-liners'', which makes it easy to manipulate them and do the derivation formally.
We think that the short notations for maps and reduces are of great help to understand what's going on.
This is also part of another note.
@unpublished{mmf2009n2 ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {Word count --- the derivation} ,year = 2009 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2009n2})
Abstract. Map and Reduce are generic, useful notions for computing science; together they are equally expressive as simple inductive definitions over trees/lists/bags/sets.
@unpublished{mmf2008j ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {MapReduce --- a two-page explanation for laymen} ,year = 2008 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2008j})
Abstract. The number of non-equivalent ways to join n+1 different objects is n!(2n over n)/2^n.
@unpublished{mmf2008i ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {Counting Join Trees} ,year = 2008 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2008i})
Abstract. When dealing with sensors with different time resolutions, it is desirable to model a sensor reading as pertaining to a time interval rather than a unit of time. We introduce two variants on the Hidden Markov Model in which this is possible: a reading extends over an arbitrary number of hidden states. We derive inference algorithms for the models, and analyse their efficiency. For this, we introduce a new method: we start with an inefficient algorithm directly derived from the model, and visually optimize it using a sum-factor diagram.
@inproceedings{eemcs13072, howpublished = {http://eprints.eemcs.utwente.nl/13072/}, month = {August}, author = {S. Evers and M. M. Fokkinga and P. M. G. Apers}, series = {ACM International Conference Proceeding Series}, booktitle = {Proceedings of the 5th International Workshop on Data Management for Sensor Networks (DMSN2008), Auckland, New Zealand}, address = {New York}, title = {Probabilistic Processing of Interval-valued Sensor Data}, publisher = {ACM}, pages = {42--48}, year = {2008}, isbn_13 = {978-1-60558-284-9}, location = {Auckland, New Zealand}, event_type = {Workshop}, event_dates = {24 Aug 2008}, official_url = {http://doi.acm.org/10.1145/1402050.1402060} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2008-se-a})
Abstract. We propose a unified and complete solution for expert finding in organizations, including not only expertise identification, but also expertise selection functionality. The latter two include the use of implicit and explicit preferences of users on meeting each other, as well as localization and planning as important auxiliary processes. We also propose a solution for privacy protection, which is urgently required in view of the huge amount of privacy sensitive data involved. Various parts are elaborated elsewhere, and we look forward to a realization and usage of the proposed system as a whole.
@inproceedings{eemcs14230, volume = {5345}, howpublished = {http://eprints.eemcs.utwente.nl/14230/}, month = {November}, author = {P. Serdyukov and L. Feng and A. H. van Bunningen and S. Evers and H. J. W. van Heerde and P. M. G. Apers and M. M. Fokkinga and D. Hiemstra}, series = {Lecture Notes in Artificial Intelligence}, booktitle = {Proceedings of the 7th International Conference on Practical Aspects of Knowledge Management (PAKM2008), Yokohama, Japan}, address = {Berlin}, title = {The right expert at the right time and place: From expertise identification to expertise selection}, publisher = {Springer Verlag}, pages = {38--49}, year = {2008}, isbn_13 = {978-3-540-89446-9}, location = {Yokohama, Japan}, event_type = {Conference}, event_dates = {21-23 Nov 2008}, official_url = {http://dx.doi.org/10.1007/978-3-540-89447-6_6}, issn = {0302-9743}, num_pages = {12}, id_number = {10.1007/978-3-540-89447-6_6} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2008f})
Abstract. In this paper we address the task of automatically finding an expert within the organization, known as the expert search problem. We present the theoretically-based probabilistic algorithm which models retrieved documents as mixtures of expert candidate language models. Experiments show that our approach outperforms existing theoretically sound solutions.
@inproceedings{eemcs10422, howpublished = {http://eprints.eemcs.utwente.nl/10422/}, month = {July}, author = {P. Serdyukov and D. Hiemstra and M. M. Fokkinga and P. M. G. Apers}, booktitle = {Proceedings of the 30th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR 2007), Amsterdam, Netherlands}, address = {New York, NY, USA}, title = {Generative Modeling of Persons and Documents for Expert Search}, publisher = {ACM Press}, year = {2007}, pages = {827--828}, isbn_13 = {978-1-59593-597-7}, location = {Amsterdam, Netherlands}, event_type = {Conference}, event_dates = {23-27 Jul 2007}, official_url = {http://doi.acm.org/10.1145/1277741.1277929}, num_pages = {2}, }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2007-ps-a})
Abstract. In situations where disjunct parts of the same process are described by their own first-order Markov models and only one model applies at a time (activity in one model coincides with non-activity in the other models), these models can be joined together into one. Under certain conditions, nearly all the information to do this is already present in the component models, and the transition probabilities for the joint model can be derived in a purely analytic fashion. This composability provides a theoretical basis for building scalable and flexible models for sensor data.
@inproceedings{eemcs10794, volume = {4772}, howpublished = {http://eprints.eemcs.utwente.nl/10794/}, month = {October}, author = {S. Evers and M. M. Fokkinga and P. M. G. Apers}, series = {Lecture Notes in Computer Science}, booktitle = {Proceedings of the 1st International Conference on Scalable Uncertainty Management (SUM 2007), Washington DC, USA}, editor = {H. Prade and V. S. Subrahmanian}, type = {Technical Report}, address = {Berlin}, title = {Composable Markov Building Blocks}, publisher = {Springer Verlag}, pages = {131--142}, year = {2007}, isbn_13 = {978-3-540-75407-7}, location = {Washington DC, USA}, event_type = {Conference}, event_dates = {10-12 Oct 2007}, official_url = {http://dx.doi.org/10.1007/978-3-540-75410-7_10}, num_pages = {12}, keywords = {Sensor data management, Markov models} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2007-se-a})
Abstract. To better serve users' information needs without requiring comprehensive queries from users, a simple yet effective technique is to explore the preferences of users. Since these preferences can differ for each context of the user, we introduce context-aware preferences. To anchor the semantics of context-aware preferences in a traditional probabilistic model of information retrieval, we present a semantics for context-aware preferences based on the history of the user. An advantage of this approach is that the inherent uncertainty of context information, due to the fact that context information is often acquired through sensors, can be easily integrated in the model. To demonstrate the feasibility of our approach and current bottlenecks we provide a naive implementation of our technique based on database views.
@inproceedings{eemcs10279, howpublished = {http://eprints.eemcs.utwente.nl/10279/}, month = {April}, author = {A. H. van Bunningen and M. M. Fokkinga and P. M. G. Apers and L. Feng}, booktitle = {First International Workshop on Ranking in Databases (DBRank 2007), Istanbul, Turkey}, address = {Los Alamitos}, title = {Ranking Query Results using Context-Aware Preferences}, publisher = {IEEE Computer Society Press}, year = {2007}, pages = {269--276}, isbn_13 = {978-1-4244-0832-0}, location = {Istanbul, Turkey}, event_dates = {April 16, 2007}, official_url = {http://dx.doi.org/10.1109/ICDEW.2007.4401003}, num_pages = {8} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2007-ahvb-b})
Abstract. Ambient Intelligence imposes many challenges in protecting people's privacy. Storing privacy-sensitive data permanently will inevitably result in privacy violations. Limited retention techniques might prove useful in order to limit the risks of unwanted and irreversible disclosure of privacy-sensitive data. To overcome the rigidness of simple limited retention policies, Life-Cycle policies more precisely describe when and how data could be first degraded and finally be destroyed. This allows users themselves to determine an adequate compromise between privacy and data retention. However, implementing and enforcing these policies is a difficult problem. Traditional databases are not designed or optimized for deleting data. In this report, we recall the formerly introduced life cycle policy model and the already developed techniques for handling a single collective policy for all data in a relational database management system. We identify the problems raised by loosening this single policy constraint and propose preliminary techniques for concurrently handling multiple policies in one data store. The main technical consequence for the storage structure is, that when allowing multiple policies, the degradation order of tuples will not always be equal to the insert order anymore. Apart from the technical aspects, we show that personalizing the policies introduces some inference breaches which have to be further investigated. To make such an investigation possible, we introduce a metric for privacy, which enables the possibility to compare the provided amount of privacy with the amount of privacy required by the policy.
@techreport{mmf2007-hvh-a, number = {TR-CTIT-07-85}, howpublished = {http://eprints.eemcs.utwente.nl/11547/}, month = {December}, author = {H. J. W. van Heerde and N. L. G. Anciaux and M. M. Fokkinga and P. M. G. Apers}, address = {Enschede}, title = {Exploring personalized life cycle policies}, type = {Technical Report}, publisher = {Centre for Telematics and Information Technology, University of Twente}, year = {2007}, issn = {1381-3625}, num_pages = {26} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2007-hvh-a})
Abstract. Following the availability of huge amounts of uncertain data, coming from diverse ranges of applications such as sensors, machine learning or mining approaches, information extraction and integration, etc. in recent years, we have seen a revival of interests in probabilistic databases. Queries over these databases result in probabilistic answers. As the process of arriving at these answers is based on the underlying stored uncertain data, we argue that from the standpoint of an end user, it is helpful for such a system to give an explanation on how it arrives at an answer and on which uncertainty assumptions the derived answer is based. In this way, the user with his/her own knowledge can decide how much confidence to place in this probabilistic answer. The aim of this paper is to design such an answer explanation model for probabilistic database queries. We report our design principles and show the methods to compute the answer explanations. One of the main contributions of our model is that it fills the gap between giving only the answer probability, and giving the full derivation. Furthermore, we show how to balance verifiability and influence of explanation components through the concept of verifiable views. The behavior of the model and its computational efficiency are demonstrated through an extensive performance study.
@techreport{eemcs10388, number = {TR-CTIT-07-41}, howpublished = {http://eprints.eemcs.utwente.nl/10388/}, month = {June}, author = {A. H. van Bunningen and L. Feng and M. M. Fokkinga and P. M. G. Apers}, address = {Enschede}, title = {An Answer Explanation Model for Probabilistic Database Queries}, type = {Technical Report}, publisher = {Centre for Telematics and Information Technology, University of Twente}, year = {2007}, issn = {1381-3625}, num_pages = {20} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2007-ahvb-a})
Abstract. Associativity of Cartesian product is well-known in set theory. The formulation of this folklore fact in terms of Entity-Relationship diagrams is less known (but equally true). We present the formulation and proof.
@unpublished{mmf2007b ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {Associativity of Cartesian Product in Entity-Relation Diagrams} ,year = 2007 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2007b})
Abstract. Nowadays more and more information becomes available in digital form. To be able to guide users through this wealth of information, a possibility is to only provide the user with relevant information, where relevancy is determined by the preferences of the user. To determine the precise relation between relevancy and preferences, we somehow need to formalize both concepts. This paper proposes a way to formalize the preferences of a user by grounding them in possible histories of the user. We explore this technique and its relations to other possible models.
@techreport{eemcs8207, number = {TR-CTIT-06-78}, howpublished = {http://eprints.eemcs.utwente.nl/8207/}, month = {December}, author = {A. H. van Bunningen and M. M. Fokkinga}, address = {Enschede}, title = {Possible Histories: A way to model Context-Aware Preferences}, type = {Technical Report}, publisher = {Centre for Telematics and Information Technology, University of Twente}, year = {2006}, issn = {1381-3625}, num_pages = {11} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2006-ahvb-a})
Abstract. Weak entities can be described by Entity-Relationship diagrams without using the notion of weak entities.
@unpublished{mmf2006b ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {Weak entities can be described by Entity-Relationship diagrams without using the notion of weak entities} ,year = 2006 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2006b})
Abstract. Er zijn vele voorstellen gedaan voor het omgaan met onbepaaldheid in gegevensbanken. Een ervan is het idee van `probabilistische gegevensbanken'. Dat idee willen we hier duidelijk maken. Dat doen we door eerst van de klassieke gegevensbanken een voorbeeld te geven, dan aan de hand van dat zelfde voorbeeld probabilistische gegevensbanken te definieren, en tenslotte wat toepassingen (het nut ervan) te laten zien.
@unpublished{mmf2005f ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {Probabilistische Gegevensbanken --- een korte inleiding} ,year = 2005 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2005f})
Abstract.
Forwards and backwards simulation are techniques to prove that a concrete program satisfies the specification that has been formulated in terms of an abstract program. There are cases where forwards simulation can be applied and not backwards simulation; the converse holds as well.
All this is probably folklore, but I've never seen so clear a presentation as the one that I now present myself...
@unpublished{mmf2005e, ,author = {Fokkinga, Maarten M.}, ,note = {Unpublished Technical Report}, ,title = {An explanation of forwards/backwards simulation} ,year = 2005 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2005e})
Abstract. In deze verhandeling geef ik een notatie en methode om een databaseschema te ontwerpen. Ik onderscheid in grote lijnen de volgende stappen: Beschrijf de werkelijkheid met een ER-diagram; Vertaal het ER-diagram naar een databaseschema door, zonder uitzondering, voor ieder entiteittype en iedere relatie een tabel te nemen; Normaliseer het databaseschema naar eerste normaalvorm; Optimaliseer het databaseschema; Normaliseer verder naar Boyce-Codd normaalvorm en 4e normaalvorm.
@unpublished{mmf2005b, author = {Fokkinga, Maarten M.}, title = {{Het ontwerpen van een databaseschema}}, year = {2005}, pages = {1--23}, note = {Unpublished Technical Report} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2005b})
Abstract.
Panradio is een systeem waarbij een gebruiker muziek voorgeschoteld krijgt die
past bij zijn smaak. Het systeem is zelflerend, zodat het smaakprofiel van de
gebruiker met het verloop van de tijd steeds beter wordt. Het systeem is
gedistribueerd: de muziek wordt gehaald van de computers van alle gebruikers
van Panradio.
Dit artikel beschrijft voornamelijk de architectuur, met bijzondere aandacht
voor de systeemprestaties: het aantal gebruikers dat het systeem aan kan. Er
wordt een model opgesteld dat de systeemprestaties beschrijft en kritische
factoren aangeeft. Door uitgebreide tests zijn benaderingen van functies in
het model gevonden, en optimalisaties geidentificeerd.
@article{db-utwente:arti:0000003629, author = {van Heerde, H.J.W. and Fokkinga, M.M.}, title = {{De databasearchitectuur van Panradio --- een zelflerende gedistribueerde muziekspeler}}, journal = {Database Magazine DB/M}, month = sep, year = {2005}, volume = {16}, number = {5}, pages = {41--44}, publisher = {Array Publications b.v.}, address = {Postbus 2211, 2400 CE Alphen aan den Rijn, Nederland}, issn = {0925-6911}, url = {http://eprints.eemcs.utwente.nl/secure2/00006303/01/db-utwente-41F4B965.pdf} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2005a})
@unpublished{db-utwente:unpu:0000003662, author = {van Ruth, J. and Fokkinga, M.M. and van Keulen, M.}, title = {{Flattening Queries over Nested Data Models}}, month = sep, year = {2005}, pages = {1--10}, note = {Submitted for publication.} }[Back to published / unpublished papers overview] (private key: \mmfkey{jvr2005b})
Abstract. De Hough transformatie is een wiskundige techniek om een stel figuren van gegeven vorm te vinden waarvan iedere figuur bij benadering gaat door veel gegeven punten. Wij zeten hier ons begrip van de techniek uiteen, zonder veel naar bestaand werk gekeken te hebben.
@unpublished{db-utwente:unpu:0000003634, author = {Fokkinga, Maarten M. and van Ruth, Joeri}, title = {{Uitleg van de Hough transformatie}}, month = apr, year = {2005}, pages = {1--3}, note = {Unpublished Technical Report} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2005d})
Abstract. SQL queries can be derived with 100% correctness from a natural language query by a calculation in set and predicate notation. This is particularly useful for queries involving quantifications hidden in the natural language formulation. The calculations lead not only to simple select-from-where formulations but also to formulations with a group-by and having clause. We recommend the approach in the teaching of SQL, observe the possibility of tools assistance, and call for future work to build tools that support the approach.
@unpublished{db-utwente:unpu:0000003618, author = {Fokkinga, Maarten M.}, title = {{Constructing SQL queries}}, year = {2004}, pages = {1--16}, note = {Working document --- intended to become a Tech Report} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2004i})
@inproceedings{mmf2004f, number = {WP-CTIT-06-01}, howpublished = {http://eprints.eemcs.utwente.nl/15345/}, month = {June}, author = {M. M. Fokkinga}, series = {CTIT Workshop Proceedings Series}, booktitle = {Proceedings of the 2nd Twente Data Management Workshop (TDM'06) on Uncertainty in Databases, Enschede}, address = {Enschede}, title = {Ignorance in the Relational Model}, publisher = {Centre for Telematics and Information Technology, University of Twente}, pages = {33--40}, year = {2006}, location = {Enschede}, event_type = {Workshop}, event_dates = {06 June 2006}, official_url = {http://www.ctit.utwente.nl/library/proceedings/tdm06.pdf}, issn = {1381-3625}, num_pages = {8} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2004f})
Abstract. Analytical query processing over complex objects often suffers from disappointing performance due to excessive use of nested-loop (element at a time) evaluation. Storing the data in a flattened form enables collection based processing (set at a time), gaining performance at the cost of having to write more complicated queries. This report proposes Dodo, an approach to automatic translation of queries from the complex objects domain into set-at-a-time operations against data stored in a flattened form.
@techreport{db-utwente:tech:0000003620, author = {van Ruth, J. and Fokkinga, M.M. and van Keulen, M.}, title = {{The Dodo Query Flattening System}}, month = sep, year = {2004}, number = {04--41}, pages = {1--51}, institution = {Centre for Telematics and Information Technology (CTIT)}, address = {PO Box 217, 7500 AE Enschede}, issn = {1381-3625} }[Back to published / unpublished papers overview] (private key: \mmfkey{jvr2004a})
@unpublished{db-utwente:unpu:0000003608, author = {Ekkebus, S.P. and Fokkinga, Maarten M. and Meratnia, Nirvana}, title = {{Real-time location-based services for running races}}, month = sep, year = {2004}, pages = {1--6}, note = {Submitted for publication} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2004g})
@techreport{db-utwente:tech:0000003598, author = {Choenni, Sunil and Blok, Henk Ernst and Fokkinga, Maarten}, title = {{Extending the Relational Model with Uncertainty and Ignorance}}, month = jul, year = {2004}, number = {TR-CTIT-04-29}, pages = {1--16}, institution = {Centre for Telematics and Information Technology, University of Twente}, address = {The Netherlands}, issn = {1381-3625}, url = {http://www.ub.utwente.nl/webdocs/ctit/1/00000100.pdf}, info = {http://www.ctit.utwente.nl/library/techreports/tr04.doc/index.html} }[Back to published / unpublished papers overview] (private key: \mmfkey{2004e})
Abstract. Indexing is an important notion for efficient data management. It prescribes the use of a particular additional data structure for direct access to the locations where requested values have been stored. Indexing makes no assumptions about the organization and structure of the actual storage of values. All this is elegantly formalized in the Z notation.
@unpublished{db-utwente:unpu:0000003564, author = {Fokkinga, Maarten M.}, title = {{Formalization of Indexing in Databases}}, month = apr, year = {2004}, pages = {1--6}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2004c})
Abstract. This is my personal ``summary in 337 one-liners'' of A Survey in Indexing and Searching XML Documents by Luk et al. (2002). I focus on technical aspects, omitting all system names and references.
@unpublished{db-utwente:unpu:0000003565, author = {Fokkinga, Maarten M.}, title = {{"A Survey in Indexing and Searching XML Documents" in 337 one-liners}}, month = mar, year = {2004}, pages = {1--10}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands.} }[Back to published / unpublished papers overview] (private key: \mmfkey{2004b})
Abstract. We show that, and how, functional dependencies can be formally derived from a case description in natural language.
@unpublished{db-utwente:unpu:0000003617, author = {Fokkinga, Maarten M.}, title = {{FDFD: Formal Derivations of Functional Dependencies}}, month = feb, year = {2004}, pages = {1--7}, note = {Unregistered Technical Report, University of Twente, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2004h})
@inproceedings{mmf2004a, number = {WP-CTIT-06-01}, howpublished = {http://eprints.eemcs.utwente.nl/15344/}, month = {June}, author = {M. M. Fokkinga}, series = {CTIT Workshop Proceedings Series}, booktitle = {Proceedings of the 2nd Twente Data Management Workshop (TDM'06) on Uncertainty in Databases, Enschede}, address = {Enschede}, title = {Z-style notation for Probabilities}, publisher = {Centre for Telematics and Information Technology, University of Twente}, pages = {19--24}, year = {2006}, location = {Enschede}, event_type = {Workshop}, event_dates = {6 June 2006}, official_url = {http://www.ctit.utwente.nl/library/proceedings/tdm06.pdf}, issn = {1574-0846}, num_pages = {6} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2004a})
Abstract. Alignment of application architecture to business architec- ture is a central problem in the design, acquisition and implementation of information systems in current large-scale information-processing organi- zations. Current research in architecture alignment is either too strategic or too software implementation-oriented to be of use to the practicing information systems architect. This paper presents a framework to an- alyze the alignment problem and operationalizes this as an approach to application architecture design given a business context. We summarize guidelines for application architecture design and illustrate our approach and guidelines with an example.
@inproceedings{db-utwente:inpr:0000003330, author = {Wieringa, R.J. and Blanken, H.M. and Fokkinga, M.M. and Grefen, P.W.P.J.}, title = {{Aligning Application Architecture to the Business Context}}, crossref = {db-utwente:proc:0000003407}, pages = {209--225} } @proceedings{db-utwente:proc:0000003407, editor = {Eder, Johann and Missikoff, Michelle}, title = {{Advanced Information System Engineering}}, booktitle = {{Advanced Information System Engineering}}, year = {2003}, volume = {2681}, series = {Lecture Notes in Computer Science}, publisher = {Springer-Verlag}, isbn = {3-540-40442-2}, note = {Proceedings, 15th International Conference on Advanced Information System Engineering, CAiSE 2003, held in Klagenfurt, Austria, June 16-18, 2003} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2002f})
Abstract. We set out to find the set and predicate notation corresponding to SQLs group-by clause, and find useful rules for manipulation those notations so as to be able to calculate a SQL group-by query from an initial set notation of the query.
@unpublished{db-utwente:unpu:0000003399, author = {Fokkinga, Maarten M.}, title = {{Construction of SQL group-by queries}}, month = aug, year = {2003}, note = {Unregistered Technical Note} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2003c})
Abstract. We provide a formal definition of several XML notions: schema, document, validity (of a document for a schema), query and answer, and integration. The definitions have the following properties:
@unpublished{db-utwente:unpu:0000003553, author = {Fokkinga, Maarten M.}, title = {{XML notions formalized}}, month = apr, year = {2003}, pages = {1--18}, note = {Unregistered Technical Note. University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2003a})
Abstract. We attempt to characterize the goals that we have in mind when formalizing the relation between distributed XML query processing and integration.
@unpublished{db-utwente:unpu:0000003554, author = {Fokkinga, Maarten M.}, title = {{About XML integration and distribution}}, month = apr, year = {2003}, pages = {1--2}, note = {Unregistered Technical Note. University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2003b})
Abstract. In XQuery the FLWOR expression is a kind of comprehension for sequences. It differs from sequence comprehensions as found in functional programming languages mainly in the presence of an order by clause. We define a sequence expression with an order by clause that is suitable to express the semantics of XQuery's FLWOR expressions.
@unpublished{mmf2003e ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {{Sequence comprehension for XQuery's FLWOR expression}} ,year = 2003 ,pages ={1--2} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2003e})
Abstract. Refinement in bisimulation semantics is defined differently from refinement in failure semantics: in bisimulation semantics refinement is based on simulations between labelled transition systems, whereas in failure semantics refinement is based on inclusions between failure systems. There exist however pairs of refinements, for bisimulation and failure semantics respectively, that have almost the same properties. Furthermore, each refinement in bisimulation semantics implies its counterpart in failure semantics, and conversely each refinement in failure semantics implies its counterpart in bisimulation semantics defined on the canonical form of the compared processes.
Keywords: refinement, labelled transition systems, bisimulation semantics, failure semantics, decorated traces.
@article{db-utwente:arti:0000002043, author = {Eshuis, R. and Fokkinga, M.M.}, title = {{Comparing Refinements for Failure and Bisimulation Semantics}}, journal = {Fundamenta Informaticae}, year = {2002}, volume = {52}, number = {4}, pages = {297--321}, info = {http://fi.mimuw.edu.pl/} }[Back to published / unpublished papers overview] (private key: \mmfkey{eshuis2000a})
Abstract. With large volumes of data being exchanged on the Internet,
query languages are needed to bridge the gap between databases and the web.
Furthermore, the differentiation in data types used by web- based applications
is ever growing, despite all standardization efforts. The Data eXchange Language
(DXL) provides an extensible base language designed to exchange data from
heterogeneous sources into a single target.
One application of DXL, the focus in this article, is to retrieve data
from databases, and yield the result in an XML document. However, the real
application area of DXL is much broader since DXL provides a framework which
allows data of a particular source to be queried and/or constructed by its
original query language. This is achieved by DXL's extensibility mechanism
which allows other query languages to be embedded into a DXL query.
The scope of this article is to compare DXL to other related query
languages, discuss DXL's features and architecture, and present the base
language definition of DXL. Furthermore we will discuss two extensions of
DXL which allows us to query and construct databases and XML documents. Finally
we will use these extensions in a newsgroup example, to illustrate DXL's
main features, with respect to querying heterogeneous sources, and its recursive
behavior.
@inproceedings{db-utwente:inpr:0000003181, author = {van Zwol, Roelof and Fokkinga, M.M. and Jeronimus, V. and Apers, Peter M.G.}, title = {{Data exchange over web-based applications}}, crossref = {db-utwente:proc:0000003180}, pages = {17--33} } @proceedings{db-utwente:proc:0000003180, editor = {Lacroix, Zo{\'e}}, title = {{Proceedings 2nd International Workshop on Data Integration on the Web, DIWeb'02}}, booktitle = {{Proceedings 2nd International Workshop on Data Integration on the Web, DIWeb'02}}, year = {2002}, organization = {University of Toronto Press}, address = {Toronto, Canada} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2002a})
Abstract. In het afgelopen tentamen OIS (Ontwerpen van Informatiesystemen; 233026) stond onderstaande opgave over ER-modelering. Geen enkele van de twintig studenten had een volledig correcte uitwerking. Maar ook geen enkele van mijn collega's! Ook ikzelf niet. En zelfs de oplossing in het boek Design Methods for Reactive Systems is niet 100% correct. Iedereen heeft natuurlijk wel iets goed; maar ja, wat heb je aan een specificatie die fout is? Hieronder geef ik de opgave zoals die (op een kleine correctie na) op het tentamen gesteld is. Ik daag de lezer uit eerst zelf een tot in details uitgewerkte oplossing te bedenken (en bijhorende argumentatie te geven) en alternatieven te beschouwen, alvorens naar het antwoord te kijken. Je zult versteld staan van de valkuilen die zich bij deze ER-modellering voordoen.
@unpublished{db-utwente:unpu:0000003626, author = {Fokkinga, M.M.}, title = {{Ternaire relaties in ERDs zijn lastig}}, month = jun, year = {2002}, pages = {1--7}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2002g})
Abstract. Dijkstra and Scholten have argued that greater use should be made of the associativity of equivalence. This note shows how the property is used in specifying the rotation of the disks in the well-known Towers of Hanoi problem.
@article{db-utwente:arti:0000002042, author = {Backhouse, R.C. and Fokkinga, M.M.}, title = {{The associativity of equivalence and the Towers of Hanoi problem}}, journal = {Information Processing Letters}, year = {2001}, volume = {77}, number = {2--4}, pages = {71--76} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2001a})
Abstract. Life cycles (discussed elsewhere regarding the informal
and pragmatic aspects) can be formally defined as a process model with some
un-conventional features, namely: multiplicity of events, a restricted visibility of parameters, and `negative prefixes' to block an event set from happening.
We show how to translate these aspects in terms of conventional process constructs.
Several times we manage to present the proofs of an implication and its converse that use different induction hypotheses as one series of equivalences.
This presentation technique seems more generally applicable to and useful for process models.
@techreport{db-utwente:tech:0000003551, author = {Fokkinga, Maarten M. and van Rein, Rick}, title = {{A Process Model for Life Cycles}}, year = {2001}, institution = {University of Twente}, address = {Enschede, Netherlands}, note = {Unregistered Technical Report} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2001b})
Abstract. With large volumes of data being exchanged over the Internet query languages are needed to bridge the gap between databases and the web. DXL provides an extendible framework, designed to exchange data between heterogeneous sources and targets, such as databases and XML documents. One application of DXL, the focus in this article, is to retrieve data from databases and yield the result in XML documents. The major contribution of DXL compared to other query languages, like RXL and XQuery, is that the structure of an output XML document may depend not only on the DXL query but also on the source data. To achieve this DXL uses a construct clause, where the structure of the XML document is (partially) defined, but unlike other XML query languages this clause is embedded in a template, which can be called recursively. We demonstrate the power of DXL with a newsgroup example, where each posted message may have arbitrarily nested follow-ups. The extendibility of the framework is ensured by using XML to describe the syntax of DXL. Besides discussing the syntax, semantics, and the newsgroup application of DXL, we will also show how heterogeneous sources can be queried and integrated into a single XML document, and we discuss the architecture that is setup to implement DXL.
@techreport{db-utwente:tech:0000003331, author = {van Zwol, R. and Jeronimus, V. and Fokkinga, M.M. and Apers, P.M.G.}, title = {{DXL: Data eXchange Language}}, month = dec, year = {2001}, number = {TR-CTIT-01-47}, institution = {University of Twente, Centre for Telematics and Information Technology (CTIT)}, address = {PO Box 217, NL 7500 AE Enschede}, issn = {1381-3625} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2001e})
Abstract. We use the business and software architecture of Travel Service International (TSI) as a case study to validate our approach to ICT architecture. The techniques discussed are explained at length in a textbook by Wieringa.
@techreport{db-utwente:tech:0000003332, author = {Wieringa, R.J. and Blanken, H.M. and Fokkinga, M.M.}, title = {{Documenting the ICT Architecture of TSI}}, month = dec, year = {2001}, number = {TR 01-42}, institution = {University of Twente, Centre for Telematics and Information Technology (CTIT)}, address = {PO Box 217, NL 7500 AE Enschede}, issn = {1381-3625} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2001d})
Abstract.
We propose a form of input and output for functional languages that is
in a sense \emph{orthogonal} to the actual computation: certain input
and output directives can be added to a completed, fully working
program text, and they do neither disturb referential transparency nor
necessitate to change the types of the program text.
The input and
output directives change the order of evaluation as little as possible
(lazy evaluation remains lazy), though there is sufficient control over
the order in which the input and output actions occur to make it
acceptable for the user.
The basic idea is that a value which is
written out explicitly in the program text by way of typical example,
is replaced by a special constant that asks the user to type in parts
of the value, as needed by the computation.
The mechanism seems suitable for a large class of so-called interactive programs.
@techreport{db-utwente:tech:0000003552, author = {Fokkinga, Maarten M. and Kuper, Jan}, title = {{An alternative approach to I/O}}, month = dec, year = {2001}, number = {TRCTIT-01-44}, pages = {1--12}, institution = {University of Twente, Centre for Telematics and Information Technology (CTIT)}, address = {Enschede, Netherlands}, issn = {1381-3625} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2001c})
Abstract. The principal interpretation of an ERD (Entity-Relationship Diagram) consists of individuals, concepts, and properties in the real world; the interpretation is inherently informal and subjective! Nevertheless, the notation also has an interpretation of its own, in abstract mathematical terms rather than concrete real world terms. The existence of such an interpretation is important, because it enables us to decide various questions about the notation without resorting to informal (hence subjective) arguments.
In this note we give a ``translation'' of an ERD to its formal semantics. It will turn out that the formal semantics takes a lot more symbols and piece of paper than the ERD itself. This indicates that ERDs are a concise notation; giving only the mathematical formulas instead of a graphical ERD would be unpractical. The mathematical semantics comes into play only to give rigorous proofs of theorems about ERDs (such as verifications of checking and manipulations by tools!), or to explain dark corners of the principal interpretation of ERDs.
@unpublished{db-utwente:unpu:0000003625, author = {Fokkinga, M.M.}, title = {{Formal semantics of ERDs}}, month = sep, year = {2001}, pages = {1--6}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2001f})
Abstract. This note proposes an approach to a ``Theory of MOA'' --- the completion of which is deemed worth (and proposed as) a full PhD thesis. The objective of the theory is threefold: first it should provide `insight' in the principles of MOA (possibly leading to improvements in the documentation, explanations, and so on), second it should provide a formal framework to formulate and prove various claims and properties of MOA, and third it should suggest generalisations (possibly leading to an improved or more general system). In order to achieve the right level of abstraction and generality, we will use some methods and notions from category theory; using category theory is not an aim in itself.
@techreport{db-utwente:tech:0000003550, author = {Fokkinga, Maarten M.}, title = {{Towards a Theory of Moa}}, month = sep, year = {2000}, pages = {1--12}, institution = {University of Twente}, address = {Enschede, Netherlands}, note = {Unregistered Technical Report} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2000b})
Abstract. We give an elegant proof (formal, calculational, readable, machine verifiable, without case distinctions) of the property that in the Towers of Hanoi solution all disks cycle.
@unpublished{db-utwente:unpu:0000003549, author = {Fokkinga, Maarten M.}, title = {{On the Iterative Solution of the Towers of Hanoi Problem}}, month = may, year = {2000}, pages = {1--4}, note = {Unregistered Technical Note. University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf2000a})
Abstract. Suppose that we are to build one information system (database, say) for several users that each have their own view of the world. The idea is to integrate the views of all individual users into one view (which is satisfactory for all users), and build the information system for that view. The problem that we are faced with is this: What is the/a formal definition of view integration that serves this purpose? We tackle this question, dealing with integration on the schema level as wel as on the world/extension level, and we will make explicit various assumptions. It remains to be investigated whether our notion of view integration (with the motivation above) is also suitable for federated databases and datawharehousing.
@unpublished{mmf99c ,author = {Balsetrs, H. and Fokkinga, M.M. and van Keulen, M.} ,note = {Unpublished Technical Report} ,title = View integration ,year = 1999 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf99c})
Abstract. Refinement in bisimulation semantics is defined differently from refinement in failure semantics: in bisimulation semantics refinement is based on simulations between labelled transition systems, whereas in failure semantics refinement is based on inclusions between decorated traces systems. There exist however pairs of refinements, for bisimulation and failure semantics respectively, that have almost the same properties. Furthermore, each refinement in bisimulation semantics implies its counterpart in failure semantics, and conversely each refinement in failure semantics implies its counterpart in bisimulation semantics defined on the canonical form of the compared processes.
Keywords: refinement, decorated traces, labelled transition systems, bisimulation semantics, failure semantics.
@inproceedings{db-utwente:inpr:0000003019, author = {Eshuis, R. and Fokkinga, M.M.}, title = {{Comparing Refinements for Failure and Bisimulation Semantics}}, crossref = {db-utwente:proc:0000003018}, pages = {65--80} } @proceedings{db-utwente:proc:0000003018, title = {{WAIT99 Workshop Argentino de Informatica Teorica}}, booktitle = {{WAIT99 Workshop Argentino de Informatica Teorica}}, month = sep, year = {1999}, organization = {Sociedad Argentina de Informatica e Investigacion}, address = {Uruguay 252 2 D, (1015) Buenos Aires, Argentina} }[Back to published / unpublished papers overview] (private key: \mmfkey{eshuis99a})
Abstract. Conventionally, interfaces of objects export a set of messages with their types, and suggest nothing about the order in which these services may be accessed. This leaves room for a large number of run-time errors or misbehaviours in type correct designs. To mend this, we introduce the notion of protocol, expressing offered and expected orderings of messages, along with a notion of protocol correctness. We do this by defining the Protocol Assuring Universal Language Paul, which describes protocol aspects of classes, and serves as a basis for formal study.
Keywords: object orientation, interface, behaviour, role, protocol, process, type checking, Paul.
@inproceedings{db-utwente:inpr:0000003033, author = {van Rein, R. and Fokkinga, M.M.}, title = {{Protocol Assuring Universal Language}}, crossref = {db-utwente:proc:0000003032}, pages = {241--258} } @proceedings{db-utwente:proc:0000003032, editor = {Ciancarinia, P. and Fantechi, A. and Gorrieri, R.}, title = {{Formal Methods for Open Object-Based Distributed Systems, Florence, Italy}}, booktitle = {{Formal Methods for Open Object-Based Distributed Systems, Florence, Italy}}, month = feb, year = {1999}, publisher = {Kluwer Academic Publishers}, isbn = {0-7923-8429-6}, note = {Proceedings International Conference, Florence, Italy} }[Back to published / unpublished papers overview] (private key: \mmfkey{rvr99a,mmf99a})
Abstract. Self-reference occurs frequently in theoretical investigations of formal systems. In Predicate Logic self-reference is used in G\"odels Incompleteness Theorem: a formula is constructed that asserts ``I am not formally provable''; in a programming language self-reference manifests itself in the existence of a program that writes its own text, a so-called self-reproducing program. Also in Nature self-reference plays a role, in the ability of self-reproduction of the formal system of DNA molecules. Odifreddi~\cite[page 165--174]{odifreddi89} discusses these topics and gives good references to the literature.
In this note we explain, independent of any formalism, how to construct an expression in a formal system that ``does something with itself''. As an application of this procedure we show how to construct a program that writes its own text, lay-out included. (Our self-reproducing Miranda script is, after some optimisation, exactly 36 characters long!)
@article{db-utwente:arti:0000003408, author = {Fokkinga, Maarten M.}, title = {{Expressions that talk about themselves}}, journal = {The Computer Journal}, year = {1996}, number = {5}, pages = {408--412} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf94b})
Abstract.
Using the well-known categorical notion of `functor' one may define the
concept of datatype (algebra) without being forced to introduce a signature,
that is, names and typings
for the individual sorts (types) and operations involved.
This has proved to be advantageous for those theory developments where one is
not interested in the syntactic appearance of an algebra.
The categorical notion of `transformer' developed in this paper allows the same
approach to laws:
without using signatures one can define the concept of law for datatypes
(lawful algebras), and investigate the equational specification of datatypes
in a syntax-free way.
A transformer is a special kind of functor
and also a natural transformation on the level of dialgebras.
Transformers are quite expressive, satisfy several closure properties, and are
related to naturality and Wadler's Theorems For Free.
In fact, any colimit is an initial lawful algebra.
@article{db-utwente:arti:0000003409, author = {Fokkinga, Maarten M.}, title = {{Datatype Laws Without Signatures}}, journal = {Mathematical Structures in Computer Science}, year = {1996}, volume = {6}, pages = {1--32}, publisher = {Cambridge University Press}, issn = {0960-1295} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf91h})
Abstract. Aan twee personen zijn het product en de som van twee verschillende positieve gehele getallen onder de honderd gegeven. Op de vraag wat die getallen zijn, zeggen zij achtereenvolgens en om beurten: ``Ik weet het niet'', ``Dat wist ik al'', ``Nu weet ik het wel'', ``Nu weet ik het ook''. Wij construeren een elegant programma dat het getallenpaar oplevert.
@unpublished{mmf1996k ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {{De WeetNiet-WistAl-WeetWel-WeetOok puzzel}} ,year = 1996 ,pages = {1--4} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf1996k})
Abstract. 3D plaatjes (plaatjes waarop een afbeelding in drie dimensies gezien kan worden) hebben een heel regelmatige structuur. We construeren een eenvoudig programma waarmee gemakkelijk DoeHetZelf 3D plaatjes gemaakt kunnen worden.
@unpublished{mmf96j ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {{DHZ-3D}} ,year = 1996 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf96j})
Abstract. Gegeven is een lijst van woorden. Gevraagd wordt alle mogelijke $4\times 4$-vierkanten van letters waarin elke rij en elke kolom een woord is uit de gegeven woordenlijst $wrds$. Hiervoor wordt een Miranda-programma ontwikkeld.
@unpublished{mmf96d ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {{Magische woordvierkanten}} ,year = 1996 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf96d})
Abstract.
In iedere zak chips (van het juiste merk) zitten een of meer
flippos: kleine ronde kunststof schijfjes. Je kunt ermee bouwen
(de techno-flippos), gooien (de gewone flippos), ruilen of gewoon
sparen (hoe meer hoe beter, vindt de chips-fabrikant). Op sommige staat
zelfs een puzzel; en daar gaat hier over. Op zo'n puzzel-flippo staan
vier cijfers waarmee je een sommetje moet construeren met 24 als
uitkomst; elk cijfer moet precies eenmaal in het sommetje voorkomen
(als getal), en
de bewerkingen *, /, +, - mogen daarbij worden gebruikt.
Bijvoorbeeld, met de cijfers 1,4,7,7 kunnen we het sommetje
(1+7)*(7-4) maken met 24 als uitkomst.
Wij zullen nu een Miranda script maken waarmee flippo-puzzels zijn op te lossen
en te genereren.
Er is ruimte genoeg om mee te denken: er zijn 26 opgaven met antwoorden.
@unpublished{db-utwente:unpu:0000003616, author = {Fokkinga, Maarten M.}, title = {{Flippos --- de nieuwe rage}}, month = apr, year = {1996}, pages = {1--18}, note = {Unregistered Technical Note. University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf96c})
Abstract. Deze bundel van weinig tekst en veel opgaven is bedoeld
als een eerste kennismaking met programmeren, aan de hand van een functionele
programmertaal. De student krijgt `gevoel' voor het nauwkeurig uitdrukken
van gewenste resultaten, en leert de basistechnieken op informele wijze beheersen.
Het gaat er in deze bundel niet om technische termen, theorie of technieken
voor gevorderden aan te leren.
In een vervolgcursus kunnen pas technieken voor gevorderden, ingewikkelde algoritmen en formele aspecten aan bod komen.
Naar mijn overtuiging is er maar een manier om een vaardigheid zoals programmeren aan te leren:
veel afkijken, veel nadoen en vooral veel oefenen.
Dat is effectiever dan het lezen van lange uiteenzettingen en wijze lessen.
Vanuit die overtuiging heb ik deze cursus opgezet.
Het bekijken van antwoorden wordt aangemoedigd; er blijven voldoende veel opgaven over om zelf te proberen.
@techreport{db-utwente:tech:0000003548, author = {Fokkinga, Maarten M.}, title = {{FP --- Geen Woorden Maar Daden}}, year = {1996}, pages = {1--170}, institution = {University of Twente}, address = {Enschede, Nethrelands}, note = {Also used as Lecture Notes} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf96b})
Abstract. Constraints in databases may be maintained while transactions
are executed, by the automatic invocation of suitable rules containing actions
that compensate any constraint violation within the transactions. There is
ample opportunity for machine assistence in the construction of the rules.
The correctness and termination of a collection of rules follows from local
correctness and termination properties for the individual rules, which are
left to the responsibility of the user.
This is a summary of the 1990 paper by Ceri and Widom, rephrased on
a very abstract level and provided with alternative and simpler proofs.
@techreport{db-utwente:tech:0000003333, author = {Fokkinga, Maarten M.}, title = {{Machine Assisted Constraint Maintenance}}, month = oct, year = {1996}, pages = {1--3}, institution = {University of Twente}, address = {Enschede, Netherlands}, note = {Unregistered technical report.} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf96a})
Abstract. We describe what we think is the essence of Object-Orientedness (OO), and then show by means of an example how this style translates into a Functional Programming (FP) notation. The example is the case of two thermometers, with possibly different scales (Centigrades, Fahrenheit, or whatever), that can be used separately but also in a coupling in such a way that the coupled pair behaves consistently.
@unpublished{mmf95b ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report; see also the addendum} ,title = {{OO versus FP --- a little case study}} ,year = 1995 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf95b})
Abstract.
We give a concise, structured, and calculational proof of a theorem that yields
a program specification for a given, specific, program simulation.
Keywords: program correctness, programming calculi.
@unpublished{db-utwente:unpu:0000003547, author = {Fokkinga, M.M. and van der Woude, J.C.S.P. and Zwiers, J.}, title = {{Program Specifications for Program Simulations}}, month = feb, year = {1995}, pages = {1--8}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands. Aee also the appendix} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf95a})
@unpublished{mmf94h, author = {Fokkinga, Maarten M.}, title = {{Notities bij `Informatiesystemen'}}, month = nov, year = {1994}, note = {Unregistered Note, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf94h})
@unpublished{db-utwente:unpu:0000003542, author = {Fokkinga, Maarten M.}, title = {{Constructie van contextdiagrammen}}, month = sep, year = {1994}, note = {Unregistered Technical Note, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf94f})
Abstract. Co-algebras are dual to algebras, and finality is dual to initiality. We shall be very brief in the formal exposition, since it is just a matter of dualisation, but more elaborate in the informal explanation and examples.
@unpublished{db-utwente:unpu:0000003545, author = {Fokkinga, Maarten M.}, title = {{Co-algebras --- a short summary}}, month = sep, year = {1994}, pages = {1--6}, note = {Unregistered Technical Note, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf94i})
Abstract. When can a program part be replaced by another? We discuss this question formally, and in doing so we summarise the work of Zwiers et al. (``A Note on Compositional Refinement'' and some private communication) and part of the work of Hoare et al. (``The weakest prespecification'' and ``Prespecification in data refinement'').
@unpublished{db-utwente:unpu:0000003546, author = {Fokkinga, Maarten M.}, title = {{A Summary of Refinement Theory}}, month = sep, year = {1994}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf94j})
Abstract.
Each datatype constructor comes equiped not only with a so-called map
and fold (catamorphism), as is widely known, but, under some
condition, also with a kind of map and fold that are related to an
arbitrary given monad.
This result follows from the preservation of initiality under lifting
from the category of algebras in a given category to a certain other
category of algebras in the Kleisli category related to the monad.
@techreport{db-utwente:tech:0000003538, author = {Fokkinga, Maarten M.}, title = {{Monadic Maps and Folds for Arbitrary Datatypes}}, month = jun, year = {1994}, number = {Memoranda Inf 94-28}, pages = {1--23}, institution = {University of Twente}, address = {Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf94a})
Abstract. The concept of dyad is defined as the least common generalisation of monads and co-monads. So, taking some of the ingredients to be the identity, the concept specialises to the concept of monad, and taking other ingredients to be the identity it specialises to co-monads. Except for one axiom, all have a nice (``natural'') form.
@techreport{db-utwente:tech:0000003539, author = {Fokkinga, Maarten M.}, title = {{Dyads, a generalisation of monads}}, month = jun, year = {1994}, number = {Memoranda Inf 94-30}, pages = {1--8}, institution = {University of Twente}, address = {Enschede, Netherlands}, issn = {0924-3755} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf94c})
Abstract. We present the category-theoretic notion of adjunction in a way that makes it easy to formally calculate with it; an acquaintance with its algebraic properties may greatly help in understanding the notion. It is illustrated by means of a lot of theorems and proofs. We also attempt to provide some intuitive understanding of adjunctions by various discussions. Our intended readership is familiar with the notion of category, functor, and naturality, and either about to learn about adjunctions or interested in a calculational approach to category theory.
@techreport{db-utwente:tech:0000003540, author = {Fokkinga, M.M. and Meertens, L.}, title = {{Adjunctions}}, month = jun, year = {1994}, number = {Memoranda Inf 94-31}, pages = {1--33}, institution = {University of Twente}, address = {Enschede, Netherlands}, issn = {0924-3755} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf94d})
Abstract.
Sommige datatypen kunnen volledig met axioma's gekarakteriseerd worden,
zonder op enigerlei wijze voor te schrijven hoe de elementen van het
datatype er uit zien; we spreken dan van abstract datatype. We
laten de karakterisering en enige stellingen en bewijzen in detail zien
voor het cartesisch product en disjoint union van twee
verzamelingen.
De begrippen en methoden die een rol spelen komen uit de categorie-theorie.
@techreport{db-utwente:tech:0000003541, author = {Fokkinga, Maarten M.}, title = {{Abstracte Datatypen en Categorie-Theorie}}, month = jun, year = {1994}, number = {Memoranda Inf 94-32}, pages = {1--23}, institution = {University of Twente}, address = {Enschede, Netherlands}, issn = {0924-3755} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf94e})
Abstract. Tail invariants are weaker than normal invariants, and thus allow for more program manipulations. This is shown formally in a very general setting.
@unpublished{db-utwente:unpu:0000003543, author = {Fokkinga, Maarten M.}, title = {{Tail invariants}}, month = jun, year = {1994}, note = {Unregistered Technical Note, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf94g})
Abstract. The Communication Closed Layers law is shown to be modular complete for a model related to that of Mazurkiewicz. It is shown that in a modular style of program development the CCL rule cannot be derived from simpler ones. Within a non-modular set-up the CCL rule can be derived however from a simpler independence rule and an analog of the expansion rule for process algebras.
@inproceedings{db-utwente:inpr:0000003411, author = {Fokkinga, Maarten M. and Poel, Mannes and Zwiers, Job}, title = {{Modular Completeness for Communication Closed Layers}}, crossref = {db-utwente:proc:0000003410}, pages = {50--65} } @proceedings{db-utwente:proc:0000003410, editor = {Best, Eike}, title = {{Proceedings CONCUR '93}}, booktitle = {{Proceedings CONCUR '93}}, month = aug, year = {1993}, volume = {715}, series = {Lecture Notes in Computer Science}, publisher = {Springer-Verlag}, isbn = {3-540-57208-2} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf93a})
Abstract. The usual ``map f'' is adapted so as to accept and produce a state value that is single-threaded through the computation. This is an elaboration of Section 4 (3 pages; not including 4.1) of the paper `` Type parametric programming with compile-time reflection'' by Tim Sheard.
@unpublished{db-utwente:unpu:0000003615, author = {Fokkinga, Maarten M.}, title = {{State-based functional frogramming}}, month = jul, year = {1993}, pages = {1--9}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf93b})
Abstract. Diagram chasing is an established proof technique in Category Theory. Algebraic calculation is a good alternative; made possible thanks to a notation for various unique arrows and a suitable formulation of initiality, and the calculational properties brought forward by initiality.
@article{db-utwente:arti:0000003412, author = {Fokkinga, M.M.}, title = {{Calculate categorically!}}, journal = {Formal Aspects of Computing}, year = {1992}, volume = {4}, number = {4}, pages = {673--692}, publisher = {Springer-Verlag}, issn = {0934-5043}, info = {http://www.springerlink.com/app/home/subject.asp?wasp=1exdm0dxwh0wwlbwup4u&referrer=journal&id=20395} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf91j})
Abstract. Algoritmiek (engels: algorithmics) is de theorie en praktijk van het algebraisch redeneren over programma's. Een elementaire stap in een algebraische redenering over programma's wordt wet genoemd (engels: law). Het systematisch ontdekken en gebruiken van wetten voor programma's is het onderwerp van mijn promotie-onderzoek geweest. Dit verhaal geeft een overzicht van dat onderzoek.
@unpublished{db-utwente:unpu:0000003537, author = {Fokkinga, Maarten M.}, title = {{Law and order in Algorithmics}}, month = dec, year = {1992}, note = {Introduction to the Doctoral Dissertation of the same title, in Dutch; appeared in I/O-Vivat} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf92d})
@book{db-utwente:book:0000003535, author = {Fokkinga, Maarten and Jeuring, Johan}, title = {{Lecture Notes of the STOP 1992 Summerschool on Constructive Algorithmics}}, booktitle = {{Lecture Notes of the STOP 1992 Summerschool on Constructive Algorithmics}}, month = sep, year = {1992}, volume = {Part I}, publisher = {University of Utrecht}, address = {Utrecht, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf92b2})
@inbook{db-utwente:inbo:0000003536, author = {Fokkinga, Maarten}, title = {{A Gentle Introduction to Category Theory --- the calculational approach}}, crossref = {db-utwente:book:0000003535}, pages = {1--72} } @book{db-utwente:book:0000003535, author = {Fokkinga, Maarten and Jeuring, Johan}, title = {{Lecture Notes of the STOP 1992 Summerschool on Constructive Algorithmics}}, booktitle = {{Lecture Notes of the STOP 1992 Summerschool on Constructive Algorithmics}}, month = sep, year = {1992}, volume = {Part I}, publisher = {University of Utrecht}, address = {Utrecht, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf92b})
Abstract. An algorithm is the input-output effect of a computer program; mathematically, the notion of algorithm comes close to the notion of function. Just as arithmetic is the theory and practice of calculating with numbers, so is ALGORITHMICS the theory and practice of calculating with algorithms. Just as a law in arithmetic is an equation between numbers, like a(b+c) = ab + ac, so is a LAW in algorithmics an equation between algorithms. The goal of the research done is: (extending algorithmics by) the systematic detection and use of laws for algorithms. To this end category theory (a branch of mathematics) is used to formalise the notion of algorithm, and to formally prove theorems and laws about algorithms.
The underlying motivation for the research is the conviction that algorithmics may be of help in the construction of computer programs, just as arithmetic is of help in solving numeric problems. In particular, algorithmics provides the means to derive computer programs by calculation, from a given specification of the input-output effect.
In Chapter 2 the systematic detection and use of laws is applied to category theory itself. The result is a way to conduct and present proofs in category theory, that is an alternative to the conventional way (diagram chasing).
In Chapter 3--4 several laws are formally derived in a systematic fashion. These laws facilitate to calculate with those algorithms that are defined by induction on their input, or on their output. Technically, initial algebras and terminal co-algebras play an crucial role here.
In Chapter 5 a category theoretic formalisation of the notion of law itself is derived and investigated. This result provides a tool to formulate and prove theorems about laws-in-general, and, more specifically, about equationally specified datatypes.
Finally, in Chapter 6 laws are derived for arbitrary recursive algorithms. Here the notion of ORDER plays a crucial role. The results are relevant for current functional programming languages.
At present there are still some hard copies available.
@phdthesis{db-utwente:phdt:0000003413, author = {Fokkinga, Maarten M.}, title = {{Law and Order in Algorithmics}}, month = feb, year = {1992}, pages = {1--160}, school = {University of Twente}, address = {7500 AE Enschede, Netherlands}, isbn = {90-9004816-2} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmfphd})
Abstract. Given an algebra and a relation on its carrier, we construct categorically the least equivalence relation containing the relation and being a congruence for (the operations of) the algebra. We need to assume that the base category is omega-cocomplete, and has all finite coequalisers, pushouts, and kernel pairs (pullbacks of equal pairs); the functor of the algebra has to be omega-cocontinuous. Note (added in proof): there is still a ``small'' gap in the correctness proof: the omega-cocontinuity of the so-called Kernel pair functor is not yet clear.
@unpublished{mmf91n ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report} ,title = {{Categorical construction of the induced congruence}} ,year = 1991 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf91n})
Abstract. Consider a first order typed language, with semantics S for expressions and types. Adding subtyping means that a partial order < on types is defined and that the typing rules are extended to the effect that expression e has type t whenever e has type s and s<t. We show how to adapt the semantics S in a simple set theoretic way, obtaining a semantics S' that satisfies, in addition to some obvious requirements, also the property that: S' s is included in S' t, whenever s<t.
@article{db-utwente:arti:0000002037, author = {Balsters, H. and Fokkinga, M.M.}, title = {{Subtyping can have a Simple Semantics}}, journal = {Theoretical Computer Science}, year = {1991}, volume = {87}, pages = {81--96}, publisher = {Elsevier} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf91k})
Abstract. We develop a calculus for lazy functional programming based on recursion operators associated with data type definitions. For these operators we derive various algebraic laws that are useful in deriving and manipulating programs. We shall show that all example functions in Bird and Wadlesr's ``Introduction to Functional Programming'' can be expressed using these operators.
@inproceedings{db-utwente:inpr:0000003415, author = {Meijer, Erik and Fokkinga, Maarten M. and Paterson, Ross}, title = {{Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire}}, crossref = {db-utwente:proc:0000003414}, pages = {124--144} } @proceedings{db-utwente:proc:0000003414, editor = {Hughes, J.}, title = {{FPCA91: Functional Programming Languages and Computer Architecture}}, booktitle = {{FPCA91: Functional Programming Languages and Computer Architecture}}, month = aug, year = {1991}, volume = {523}, series = {Lecture Notes in Computer Science (LNCS)}, publisher = {Springer-Verlag}, isbn = {3-540-54396-1}, info = {http://www.springer.de} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf91m})
Abstract. We present a formal derivation of program schemes that are usually called Backtracking programs and Branch-and-Bound programs. The derivation consists of a series of transformation steps, specifically algebraic manipulations, on the initial specification until the desired programs are obtained. The well-known notions of linear recursion and tail recursion are extended, for structures, to elementwise linear recursion and elementwise tail recursion; and a transformation between them is derived too.
@article{db-utwente:arti:0000003416, author = {Fokkinga, Maarten M.}, title = {{An exercise in transformational programming: Backtracking and Branch-and-Bound}}, journal = {Science of Computer Programming}, month = jul, year = {1991}, volume = {16}, number = {1}, pages = {19--48}, publisher = {Elsevier, North-Holland}, address = {Amsterdam, The Netherlands}, issn = {0167-6423}, info = {http://www.elsevier.com/} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf91l})
@unpublished{db-utwente:unpu:0000003534, author = {Fokkinga, Maarten M.}, title = {{Initial Many-sorted Algebras}}, month = may, year = {1991}, note = {CWI, Amsterdam} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf91g})
@unpublished{db-utwente:unpu:0000003533, author = {Fokkinga, Maarten M.}, title = {{Calculation Properties of Initiality}}, month = apr, year = {1991}, note = {CWI, Amsterdam} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf91f})
Abstract. It is well known that any initial data type comes equipped with a so-called map-functor. We show that any such map-functor is the composition of two functors, one of which is ---closely related to--- the data type functor, and the other is ---closely related to--- the function \mu (that for any functor F yields an initial F-algebra, if it exists).
@unpublished{db-utwente:unpu:0000003529, author = {Fokkinga, M.M. and Meertens, L.}, title = {{Map-functor factorized}}, month = mar, year = {1991}, note = {Appeared in: The Squiggollist, Vol 2, Nr 1, 1991, pages 17--19} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf91b})
@unpublished{db-utwente:unpu:0000003530, author = {Fokkinga, Maarten M. and Jeuring, J.T. and Meertens, L. and Meijer, E.}, title = {{A Translation from Attribute Grammars to Catamorphisms}}, month = mar, year = {1991}, note = {Appeared in: The Squigollist, Vol 2, Nr 1, 1991, pages 20--26} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf91c})
@unpublished{db-utwente:unpu:0000003532, author = {Fokkinga, Maarten M.}, title = {{Prepromorphisms}}, month = mar, year = {1991}, note = {CWI, Amsterdam} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf91e})
@unpublished{db-utwente:unpu:0000003531, author = {Fokkinga, Maarten M.}, title = {{The Category of Categories is Cartesian Closed}}, month = feb, year = {1991}, note = {CWI, Amsterdam} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf91d})
@techreport{db-utwente:tech:0000003528, author = {Fokkinga, M.M. and Meijer, E.}, title = {{Program Calculation Properties of Continuous Algebras}}, month = jan, year = {1991}, number = {CS-R9104}, institution = {CWI}, address = {Amsterdam, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf91a})
Abstract. It is well-known that for the standard implementation of cons-lists, as in Miranda and Lisp, the reduction to canonical form of x ++ y takes size x steps, given that x and y are in canonical form. This is because the catenate operation ++ for cons-list is defined by induction on the structure of its left argument as a repeated cons. So, although (x ++ y) ++ z = x ++ (y ++ z), reduction of the left-hand side takes size x + size (x ++ y) = 2 times size x + size y steps, but only size x + size y steps for the right-hand side. It is therefore more efficient to compute the value of an expression x1 ++ x2 ++ ... ++ xn (with some parenthezation) by evaluating x1 ++ ( x2 ++ ( ... ++ xn)) instead (with the parentheses grouped to the right). Less than four years ago I gave a formal treatment of this phenomenom in a seven page note (``Elimination of Left-nesting: an example of the style of functional programming''). Nowadays, in the current status of Constructive Algorithmics and Squiggol Notation, developed by Lambert Meertens and others, it is hardly more than a simple exam question. As a show of what I have learned from Lambert ---and maybe of what I still have to learn--- I will discuss a generalisation of the elimination of left-nesting in full.
@unpublished{mmf90k ,author = {Fokkinga, M.M.} ,note = {Unpublished Technical Report -- in Liber Amicorum at the occasion of Lambert Meertens 25th CWI anniversary} ,title = {{Exploiting Associativity}} ,year = 1990 }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf90k})
@unpublished{db-utwente:unpu:0000003527, author = {Fokkinga, Maarten M.}, title = {{Adjunctions formulated as cata/anamorphisms}}, month = dec, year = {1990}, note = {CWI, Amsterdam} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf90j})
@unpublished{db-utwente:unpu:0000003526, author = {Fokkinga, Maarten M.}, title = {{Sum, Product and Exponent defined as Cata/anamorphisms}}, month = nov, year = {1990}, note = {CWI, Amsterdam} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf90i})
@unpublished{db-utwente:unpu:0000003524, author = {Fokkinga, Maarten M.}, title = {{Tupling and Mutumorphisms}}, month = jun, year = {1990}, note = {Appeared in: The Squigollist, Vol 1, Nr 4, 1990, pages 81--82} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf90g})
@unpublished{db-utwente:unpu:0000003525, author = {Fokkinga, Maarten M.}, title = {{Selector Guards}}, month = jun, year = {1990}, note = {Appeared in: The Squigollist, Vol 1, Nr 4, 1990, pages 68--73} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf90h})
@unpublished{db-utwente:unpu:0000003523, author = {Fokkinga, Maarten M.}, title = {{Tupling of Catamorphisms Yields a Catamorphism}}, month = may, year = {1990}, note = {CWI, Amsterdam} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf90f})
@unpublished{db-utwente:unpu:0000003521, author = {Fokkinga, Maarten M.}, title = {{Jan Kuper's solution to ``Shall we calculate - II?''}}, month = apr, year = {1990}, note = {CWI, Amsterdam} }[Back to published / unpublished papers overview] (private key: \mmfkey{90d})
@unpublished{db-utwente:unpu:0000003522, author = {Fokkinga, Maarten M.}, title = {{Bound Variables and Hypotheses in a Calculational Proof}}, month = apr, year = {1990}, note = {CWI, Amsterdam} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf90e})
@unpublished{db-utwente:unpu:0000003519, author = {Fokkinga, Maarten M.}, title = {{A BM Style Derivation of The Lexico Least Upperbound of Pattern e in subs x}}, month = mar, year = {1990}, note = {CWI, Amsterdam} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf90b})
@unpublished{db-utwente:unpu:0000003520, author = {Fokkinga, Maarten M.}, title = {{Using Underspecification in the Derivation of some Optimal Partition Algorithms}}, month = mar, year = {1990}, note = {CWI, Amsterdam, 26 pages} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf90c})
@unpublished{db-utwente:unpu:0000003518, author = {Fokkinga, Maarten M.}, title = {{Homo- and Catamorphisms, Reductions and Maps --- An Overview}}, month = feb, year = {1990}, note = {CWI, Amsterdam} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf90})
@unpublished{db-utwente:unpu:0000003516, author = {Fokkinga, Maarten M.}, title = {{Squiggolish Derivations for some Optimal Partition Algorithms --- Promotion as the Driving Force}}, month = dec, year = {1989}, note = {CWI, Amsterdam. 25 pages} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf89b})
@unpublished{db-utwente:unpu:0000003517, author = {Fokkinga, Maarten M.}, title = {{For those who love calculating}}, month = nov, year = {1989}, note = {Appeared in: The Squigollist, Vol 1, Nr 2, 1989, pages 17--18} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf89c})
@unpublished{db-utwente:unpu:0000003515, author = {Fokkinga, Maarten M.}, title = {{Operators as Higher Order Functions --- A Case Study}}, month = may, year = {1989}, note = {CWI, Amsterdam. 11 pages} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf89})
@unpublished{db-utwente:unpu:0000003514, author = {Fokkinga, Maarten M.}, title = {{Boekbespreking van: Baeten, Procesalgebra}}, year = {1988}, note = {Boekbespreking, verschenen in: Mededelingen van het Wiskundig Genootschap Vol 31, Nr 4, page 198, 1988} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf88b})
@unpublished{db-utwente:unpu:0000003500, author = {Fokkinga, Maarten M.}, title = {{Elimination of SIGMA-types by means of introspective types}}, month = feb, year = {1988}, note = {Hand-written note} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf88h})
@misc{db-utwente:misc:0000003513, author = {Fokkinga, Maarten M.}, title = {{Programmeertaalconcepten gemodelleerd in de Lambda-calculus}}, month = jan, year = {1988}, note = {Voordracht, Zuidelijk Interuniversitair Colloquium over Logica en Theoretische Informatica, Technische Universiteit Eindhoven, 1988-01-26} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf88a})
Abstract. We consider a recursive sorting algorithm in which, in each invocation, a new variable and a new procedure (using the variable globally) are defined and the procedure is passed to recursive calls. This algorithm is proved correct with Hoare-style pre- and postassertions. We also discuss the same algorithm expressed as a functional program.
@article{db-utwente:arti:0000003417, author = {Fokkinga, Maarten M.}, title = {{A correctness proof of sorting by means of formal procedures}}, journal = {Science of Computer Programming}, year = {1987}, volume = {9}, pages = {263--269}, publisher = {North-Holland}, address = {Amsterdam}, issn = {0167-6423} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87d})
Abstract. The Lambda Calculus is a formal system, originally intended as a tool in the foundation of mathematics, but mainly used to study the concepts of algorithm and effective computability. Recently, the Lambda Calculus and related systems acquire attention from Computer Science for another reason too: several important programming language concepts can be explained elegantly and can be studied successfully in the framework of the Lambda Calculi. We show this mainly by means of examples. We address ourselves to interested computer scientists who have no prior knowledge of the Lambda Calculus. The concepts discussed include: parameterization, definitions, recursion, elementary and composite data types, typing, abstract types, control of visibility and life-time, and modules.
@inbook{db-utwente:inbo:0000003419, author = {Fokkinga, M.M.}, title = {{Programming Language Concepts --- The Lambda Calculus Approach}}, crossref = {db-utwente:book:0000003418}, pages = {129--162} } @book{db-utwente:book:0000003418, editor = {Asveld, P.R.J. and Nijholt, A.}, title = {{Essays on Concepts, Formalism, and Tools}}, booktitle = {{Essays on Concepts, Formalism, and Tools}}, year = {1987}, volume = {42}, series = {CWI Tract}, publisher = {CWI}, address = {Amsterdam, The Netherlands}, isbn = {90-6196-326-5} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87c})
@inbook{db-utwente:inbo:0000003421, author = {Fokkinga, M.M.}, title = {{Transformatie van Specificatie tot Implementatie}}, crossref = {db-utwente:book:0000003420}, pages = {53--86} } @book{db-utwente:book:0000003420, editor = {Poirters, J.A.A.M. and Schoenmaker, G.J.}, title = {{Colloquium Software Specificatie Technieken}}, booktitle = {{Colloquium Software Specificatie Technieken}}, year = {1987}, publisher = {Academic Service}, address = {Schoonhoven, Nederland}, isbn = {90-6233-269-2} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87b})
@inproceedings{db-utwente:inpr:0000003496, author = {Fokkinga, Maarten M.}, title = {{Backtracking and Branch-and-Bound Functionally Expressed}}, crossref = {db-utwente:proc:0000003495}, pages = {207--224}, note = {Extended version: Memorandum INF-86-18, june 1986, University of Twente} } @proceedings{db-utwente:proc:0000003495, title = {{Computing Science in the Netherlands}}, booktitle = {{Computing Science in the Netherlands}}, year = {1987}, organization = {CWI}, address = {Amsterdam, Netherlands}, note = {SION congres 1987} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87})
Abstract.
In [Cardelli 84] Luca Cardelli gave a formal definition of a typed
object-oriented language incorporating a sub-type relation used to describe
multiple inheritance. Cardelli's fundamental result was a semantics for his
system that enabled sub-typing to be modelled as straightforward
set-inclusion. In this paper an alternative semantics for Cardelli's system
is offered in which this result is proved in a more elementary framework.
Keywords: object-oriented programming, inheritance, lambda-calculus, types,
set-theory.
@techreport{db-utwente:tech:0000003497, author = {Balsters, H. and Fokkinga, M.M.}, title = {{An Elementary Semantics for Cardelli's System of Multiple Inheritance}}, year = {1987}, number = {Memorandum INF-87-33}, institution = {University of Twente}, address = {Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87e})
@techreport{db-utwente:tech:0000003498, author = {Brinksma, H. and Fleischhacker, L. and Fokkinga, M.M. and Verbeek, L.A.M.}, title = {{Inleiding Logika voor Informatici}}, year = {1987}, institution = {Universiteit Twente}, address = {Enschede, Nederland}, note = {(Lecture notes, in Dutch)} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87f})
@unpublished{db-utwente:unpu:0000003512, author = {Fokkinga, Maarten M.}, title = {{Modellering van lijsten in 2de orde getypte lambda-calculi}}, month = dec, year = {1987}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87u})
@unpublished{db-utwente:unpu:0000003505, author = {Fokkinga, Maarten M.}, title = {{Bird's aanpak van nonterminatie}}, month = apr, year = {1987}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87n})
@unpublished{db-utwente:unpu:0000003506, author = {Fokkinga, Maarten M.}, title = {{De convexe omhullende geprogrammerd in Bird's stijl}}, month = apr, year = {1987}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87o})
@unpublished{db-utwente:unpu:0000003507, author = {Fokkinga, Maarten M.}, title = {{Duijvestijn's geometrie in Bird's stijl uitgedrukt}}, month = apr, year = {1987}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87p})
@unpublished{db-utwente:unpu:0000003508, author = {Fokkinga, Maarten M.}, title = {{Een verklaring voor de eenvoud en het gemak van Bird's stijl}}, month = apr, year = {1987}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87q})
@unpublished{db-utwente:unpu:0000003509, author = {Fokkinga, Maarten M.}, title = {{Enige algemene attitude doelstellingen voor 1ste jaars programmeren}}, month = apr, year = {1987}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87r})
@unpublished{db-utwente:unpu:0000003510, author = {Fokkinga, Maarten M.}, title = {{Optellen en vermenigvuldigen in Bird's notatie}}, month = apr, year = {1987}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87s})
@unpublished{db-utwente:unpu:0000003511, author = {Fokkinga, Maarten M.}, title = {{Van FP naar IP --- een case study}}, month = apr, year = {1987}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87t})
@unpublished{db-utwente:unpu:0000003502, author = {Fokkinga, Maarten M.}, title = {{Bird's boek gezien vanuit de HOP-activiteiten}}, month = mar, year = {1987}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87k})
@unpublished{db-utwente:unpu:0000003499, author = {Fokkinga, Maarten M.}, title = {{Het Acht Koninginnen Probleem}}, month = feb, year = {1987}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87g})
@unpublished{db-utwente:unpu:0000003501, author = {Fokkinga, Maarten M.}, title = {{Hilbertkrommen tekenen}}, month = feb, year = {1987}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf87j})
@inproceedings{db-utwente:inpr:0000003423, author = {Fokkinga, M.M. and Jansen, P.G.}, title = {{Another variant of the Schorr-Waite algorithm and its correctnessproof --- an exercise in formulation}}, crossref = {db-utwente:proc:0000003422}, pages = {445--455} } @proceedings{db-utwente:proc:0000003422, title = {{NGI-SION 1986 Symposium Stimulerende Informatica}}, booktitle = {{NGI-SION 1986 Symposium Stimulerende Informatica}}, year = {1986}, organization = {Stichting Informatica Congressen}, isbn = {90-5005-007-7} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf86c})
@misc{db-utwente:misc:0000003487, author = {Fokkinga, Maarten M.}, title = {{Funktioneel Programmeren}}, year = {1986}, note = {Voordracht Afdelingscolloquium CWI, Amsterdam, 1986-02-24} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf86b})
@techreport{db-utwente:tech:0000003486, author = {Fokkinga, Maarten M.}, title = {{Backtracking and Branch-and-Bound functionally expressed}}, year = {1986}, number = {Memorandum INF-86-18}, institution = {University of Twente}, address = {Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf86a})
@misc{db-utwente:misc:0000003494, author = {Fokkinga, Maarten M.}, title = {{Structuur van Programmeertalen en Consequenties voor het Programmeeronderwijs}}, month = nov, year = {1986}, note = {Voordracht, Studiedag Inleidend Programmeeronderwijs, Universiteit Twente, 1986-11-18} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf86k})
@misc{db-utwente:misc:0000003493, author = {Fokkinga, Maarten M.}, title = {{Van Specificatie tot Implementatie via Transformatie}}, month = sep, year = {1986}, note = {Voordracht in Colloquium Software Specificatie Technieken, TUE/Philips-OIT} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf86j})
@unpublished{db-utwente:unpu:0000003488, author = {Fokkinga, Maarten M.}, title = {{De rij van unieke bladwaarden van een boom}}, month = may, year = {1986}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf86d})
@unpublished{db-utwente:unpu:0000003489, author = {Fokkinga, Maarten M.}, title = {{Van Recursie naar Iteratie}}, month = may, year = {1986}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf86e})
@unpublished{db-utwente:unpu:0000003490, author = {Fokkinga, Maarten M.}, title = {{Een omzetting van L-REC naar L-ITER definities}}, month = may, year = {1986}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf86f})
@unpublished{db-utwente:unpu:0000003491, author = {Fokkinga, Maarten M.}, title = {{Elimination of left-nesting}}, month = may, year = {1986} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf86g})
@unpublished{db-utwente:unpu:0000003492, author = {Fokkinga, Maarten M.}, title = {{Some Thoughts on Nondeterminism}}, month = apr, year = {1986}, note = {Hand-written note} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf86h})
@article{db-utwente:arti:0000003424, author = {Fokkinga, M.M.}, title = {{Functioneel programmeren in een vogelvlucht}}, journal = {INFORMATIE}, year = {1985}, volume = {27}, number = {10}, pages = {862--873}, publisher = {Kluwer b.v.}, address = {Deventer, The Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85s})
@inproceedings{db-utwente:inpr:0000003426, author = {Fokkinga, M.M.}, title = {{Exception Handling Constructs Considered Unnecessary}}, crossref = {db-utwente:proc:0000003425}, pages = {406--416} } @proceedings{db-utwente:proc:0000003425, title = {{Uitdaging van de Informatica}}, booktitle = {{Uitdaging van de Informatica}}, year = {1985}, organization = {Nederlands Genootschap voor Informatica (NGI)}, address = {Amsterdam}, isbn = {90-70621-17-7}, note = {Proceedings NGI-SION 1985 Symposium} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85})
@unpublished{db-utwente:unpu:0000003470, author = {Fokkinga, Maarten M.}, title = {{Sorteren met behulp van formele procedures korrekt bewezen}}, year = {1985}, note = {Handgeschreven notitie; herzien en gepubliceerd als: A correctness proof of sorting by means of formal procedures (1987)} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85b})
@unpublished{db-utwente:unpu:0000003485, author = {Fokkinga, Maarten M.}, title = {{Nondeterminisme moet lazy zijn}}, month = dec, year = {1985}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85t})
@unpublished{db-utwente:unpu:0000003483, author = {Fokkinga, Maarten M.}, title = {{Fair nondeterministic merge considered necessary}}, month = nov, year = {1985}, note = {Hand-written note} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85p})
@unpublished{db-utwente:unpu:0000003484, author = {Fokkinga, Maarten M.}, title = {{Een recursie-schema voor totale in plaats van partiele lijsten}}, month = nov, year = {1985}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85q})
@unpublished{db-utwente:unpu:0000003481, author = {Fokkinga, Maarten M.}, title = {{Een les in functioneel programmeren}}, month = oct, year = {1985}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85n})
@unpublished{db-utwente:unpu:0000003482, author = {Fokkinga, Maarten M.}, title = {{Hiding of auxiliary functions in Miranda abstract types}}, month = oct, year = {1985}, note = {Hand-written note} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85o})
@unpublished{db-utwente:unpu:0000003479, author = {Fokkinga, Maarten M.}, title = {{Bereikbaarheidstest voor grafen}}, month = sep, year = {1985}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85l})
@unpublished{db-utwente:unpu:0000003480, author = {Fokkinga, Maarten M.}, title = {{SVP-Typering van eindige automaten}}, month = sep, year = {1985}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85m})
@unpublished{db-utwente:unpu:0000003476, author = {Fokkinga, Maarten M.}, title = {{Korrektheidsbewijs van een priemgetallen-programma}}, month = aug, year = {1985}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85h})
@unpublished{db-utwente:unpu:0000003477, author = {Fokkinga, Maarten M.}, title = {{Lazy evaluation op expressie-nivo uitgelegd}}, month = aug, year = {1985}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85j})
@unpublished{db-utwente:unpu:0000003478, author = {Fokkinga, Maarten M.}, title = {{Hoe moet semantische equivalentie gedefinieerd worden}}, month = aug, year = {1985}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85k})
@unpublished{db-utwente:unpu:0000003475, author = {Fokkinga, Maarten M.}, title = {{Gesynchroniseerde interactie onder lazy evaluation}}, month = jul, year = {1985}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85g})
@unpublished{db-utwente:unpu:0000003473, author = {Fokkinga, Maarten M.}, title = {{Functionele programmering van een beeldscherm-schildpad}}, month = may, year = {1985}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85e})
@unpublished{db-utwente:unpu:0000003474, author = {Fokkinga, Maarten M.}, title = {{A functional program that replaces variables by their lexical address}}, month = may, year = {1985}, note = {Hand-written note} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85f})
@unpublished{db-utwente:unpu:0000003472, author = {Fokkinga, Maarten M.}, title = {{Nederlandse telwoorden voor getallen --- een functioneel programma}}, month = apr, year = {1985}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85d})
@unpublished{db-utwente:unpu:0000003471, author = {Fokkinga, Maarten M.}, title = {{Over intermittent en inductive assertions}}, month = mar, year = {1985}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf85c})
@techreport{db-utwente:tech:0000003465, author = {Fokkinga, Maarten M.}, title = {{A notation for the most general form of repetition}}, year = {1984}, number = {Memorandum INF-84-3}, institution = {University of Twente}, address = {Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf84a})
@unpublished{db-utwente:unpu:0000003467, author = {Fokkinga, Maarten M.}, title = {{References versus Pointers}}, year = {1984}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf84c})
@unpublished{db-utwente:unpu:0000003469, author = {Fokkinga, Maarten M.}, title = {{Assignments in asserties --- toegelicht aan de hand van de {S}chorr-{W}aite algoritme}}, month = oct, year = {1984}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf84e})
@unpublished{db-utwente:unpu:0000003468, author = {Fokkinga, Maarten M.}, title = {{Een funktioneel programma}}, month = jun, year = {1984}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf84d})
@unpublished{db-utwente:unpu:0000003466, author = {Fokkinga, Maarten M.}, title = {{Tekenen in SASL}}, month = jan, year = {1984}, note = {Handgeschreven notitie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf84b})
@techreport{db-utwente:tech:0000003463, author = {Fokkinga, M.M.}, title = {{Structuur Van Programmeertalen}}, year = {1983}, institution = {University of Twente}, address = {Enschede, Netherlands}, note = {(Lecture Notes in Dutch, Structure of Programming Languages, 250 pages)} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf83})
@techreport{db-utwente:tech:0000003464, author = {Fokkinga, M.M.}, title = {{Over het nut en de mogelijkheden van typering}}, year = {1983}, number = {Memorandum INF-83-5}, institution = {University of Twente}, address = {Enschede, Netherlands}, note = {(Lecture Notes, in Dutch, ``On the use and the possibilities of typing''. Also issued as Lecture Notes} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf83b})
@techreport{db-utwente:tech:0000003462, author = {van Berne, H. and Duijvestijn, A.J.W. and Fokkinga, M.M. and van der Genugten, Th. and Schaap-Kruseman, J.P.}, title = {{Programmeren II}}, month = nov, year = {1982}, institution = {University of Twente}, address = {Enschede, Netherlands}, note = {(Lecture notes, in Dutch)} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf82b})
@techreport{db-utwente:tech:0000003461, author = {Duijvestijn, A.J.W. and Fokkinga, M.M.}, title = {{Programmeren I}}, month = jun, year = {1982}, institution = {University of Twente}, address = {Enschede, Netherlands}, note = {(Lecture Notes, in Dutch)} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf82a})
@inproceedings{db-utwente:inpr:0000003428, author = {Fokkinga, M.M.}, title = {{On the notion of strong typing}}, crossref = {db-utwente:proc:0000003427}, pages = {305--320} } @proceedings{db-utwente:proc:0000003427, editor = {de Bakker, J.W. and van Vliet, J.C.}, title = {{Algorithmic Languages}}, booktitle = {{Algorithmic Languages}}, year = {1981}, organization = {Mathematical Centre Amsterdam, IFIP TC2}, publisher = {North-Holland}, address = {Amsterdam, The Netherlands}, isbn = {0-444-86285-4}, note = {International Symposium, Amsterdam (NL), 26-29 October 1981} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf81a})
@unpublished{db-utwente:unpu:0000003460, author = {Fokkinga, Maarten M.}, title = {{On the correctness proof of the SASL Lambo program}}, month = jul, year = {1981}, note = {Hand-written note, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf81b})
@unpublished{db-utwente:unpu:0000003459, author = {Fokkinga, Maarten M.}, title = {{Specifying precedence relations using two level grammars}}, month = feb, year = {1980}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf80a})
@unpublished{db-utwente:unpu:0000003456, author = {Fokkinga, Maarten M.}, title = {{Boekbespreking van: Benthem Jutting, Checking ``Grundlagen'' in the AUTOMATH system}}, year = {1979}, note = {Boekbespreking, verschenen in Informatie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf79b})
@techreport{db-utwente:tech:0000003458, author = {Fokkinga, Maarten M.}, title = {{Some self-reproducing Algol-like programs and Kleene's recursion theorem formulated in concrete programming languages}}, month = sep, year = {1979}, number = {TW-memo 281}, institution = {University of Twente}, address = {Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf79d})
@unpublished{db-utwente:unpu:0000003457, author = {Fokkinga, Maarten M.}, title = {{Evaluation of numbers written in the Fibonacci system}}, month = jul, year = {1979}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf79c})
@techreport{db-utwente:tech:0000003455, author = {Fokkinga, Maarten M.}, title = {{A Simpler correctness proof of an in-place permutation algorithm}}, month = mar, year = {1979}, number = {TW-Memo 249}, institution = {University of Twente}, address = {Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf79a})
@inproceedings{db-utwente:inpr:0000003430, author = {Fokkinga, Maarten M.}, title = {{Axiomatization of Declarations and the formal treatment of an Escape Construct}}, crossref = {db-utwente:proc:0000003429}, pages = {221--236} } @proceedings{db-utwente:proc:0000003429, editor = {Neuhold, E.J.}, title = {{Formal Descriptions of Programming Language Concepts}}, booktitle = {{Formal Descriptions of Programming Language Concepts}}, year = {1978}, organization = {IFIP TC-2}, publisher = {North-Holland}, address = {Amsterdam, The Netherlands}, isbn = {0-444-85107-0}, note = {IFIP TC-2 Working Conference, St. Andrews, Canada, August 1-5, 1977} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf78})
@unpublished{db-utwente:unpu:0000003450, author = {Fokkinga, Maarten M.}, title = {{A note on Rem's algorithm}}, year = {1978}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf78b})
@unpublished{db-utwente:unpu:0000003451, author = {Fokkinga, Maarten M.}, title = {{Another difference between Recursive Refinement and Repetition}}, year = {1978}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf78d})
@unpublished{db-utwente:unpu:0000003452, author = {Fokkinga, Maarten M.}, title = {{A note on the pragmatics of the repetitive construct}}, year = {1978}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf78c})
@unpublished{db-utwente:unpu:0000003453, author = {Fokkinga, Maarten M.}, title = {{Comments on `Merging Problems Revisited'}}, year = {1978}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf78e})
@unpublished{db-utwente:unpu:0000003454, author = {Fokkinga, Maarten M.}, title = {{Disciplined Constructions of `Partition'}}, year = {1978}, note = {Unregistered Technical Report, University of Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf78f})
@unpublished{db-utwente:unpu:0000003449, author = {Fokkinga, Maarten M.}, title = {{Repairing the Process semantics of Milner}}, year = {1977}, note = {Hand-written note, Technische Hogeschool Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf77b})
@techreport{db-utwente:tech:0000003447, author = {Fokkinga, Maarten M.}, title = {{Exchanging Robustness of a Program for a Relaxation of its Specification}}, month = sep, year = {1977}, number = {TW-Memorandum 178}, institution = {Technische Hogeschool Twente}, address = {Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf77})
@techreport{db-utwente:tech:0000003448, author = {Fokkinga, Maarten M.}, title = {{On the use of continuations in Mathematical Semantics}}, month = jan, year = {1977}, number = {TW-Memorandum 159}, institution = {Technische Hogeschool Twente}, address = {Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf77a})
@unpublished{db-utwente:unpu:0000003445, author = {Fokkinga, Maarten M.}, title = {{Boekbespreking van: Inleiding tot de leer van het programmeren, door Ollongen}}, year = {1976}, note = {Boekbespreking, verschenen in Informatie} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf76c})
@unpublished{db-utwente:unpu:0000003446, author = {Fokkinga, M.M.}, title = {{Boekbespreking van: Colloquium Programmacorrectheid, ed. De Bakker}}, year = {1976}, note = {Boekbespreking, verschenen in Informatie en in Wiskundig Genootschap} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf76d})
@techreport{db-utwente:tech:0000003444, author = {Bron, C. and Fokkinga, M.M.}, title = {{A proposal for dealing with abnormal termination of programs}}, month = nov, year = {1976}, number = {TW-memo 150}, institution = {Technische Hogeschool Twente}, address = {Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf76b})
@techreport{db-utwente:tech:0000003443, author = {Fokkinga, M.M. and Verbeek, L.A.M.}, title = {{Berekenbare Functies}}, month = jul, year = {1976}, institution = {Technische Hogeschool Twente}, address = {Enschede, Netherlands}, note = {(Lecture Notes, in Dutch)} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf76a})
@inbook{db-utwente:inbo:0000003432, author = {Fokkinga, Maarten M.}, title = {{Recursieve procedures en eenvoudige inductie asserties}}, crossref = {db-utwente:book:0000003431}, chapter = {X}, pages = {151--165} } @book{db-utwente:book:0000003431, editor = {de Bakker, J.W.}, title = {{Colloquium Programmacorrectheid}}, booktitle = {{Colloquium Programmacorrectheid}}, year = {1975}, volume = {21}, series = {Mathematical Centre Syllabus}, publisher = {Mathematical Centre}, address = {Amsterdam, The Netherlands}, isbn = {90-6196-103-3} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf75b})
@techreport{db-utwente:tech:0000003442, author = {Fokkinga, Maarten M.}, title = {{Comments on a paper by Milner concerning the semantics of parallelism}}, year = {1975}, number = {TW-Memo 71}, institution = {Technische Hogeschool Twente}, address = {Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf75c})
@unpublished{db-utwente:unpu:0000003441, author = {Fokkinga, Maarten M.}, title = {{Boekbespreking van: Foundations of Computer Science, ed. De Bakker}}, year = {1975}, note = {Boekbespreking, Technische Hogeschool Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf75a})
@inproceedings{db-utwente:inpr:0000003434, author = {Fokkinga, Maarten M.}, title = {{Inductive assertions patterns for recursive procedures}}, crossref = {db-utwente:proc:0000003433}, pages = {221--233} } @proceedings{db-utwente:proc:0000003433, editor = {Robinet, B.}, title = {{Programming Symposium}}, booktitle = {{Programming Symposium}}, year = {1974}, volume = {19}, series = {Lecture Notes in Computer Science}, publisher = {Springer-Verlag}, isbn = {3-540-06859-7} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf74a})
@unpublished{db-utwente:unpu:0000003437, author = {Fokkinga, Maarten M.}, title = {{Motivatie en Scott's Tralietheoretische benadering voor een Wiskundige Semantiek van Programmeertalen}}, year = {1974}, note = {Handgeschreven raport, Technische Hogeschool Delft, Delft, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf74b})
@unpublished{db-utwente:unpu:0000003439, author = {Fokkinga, Maarten M.}, title = {{Notities n.a.v. ``Notities over de behandeling van het parametermechanisme in de syllabus Agol 60 (CB68)''}}, month = nov, year = {1974}, note = {Handgeschreven notitie, Technische Hogeschool Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf74d})
@unpublished{db-utwente:unpu:0000003440, author = {Fokkinga, Maarten M.}, title = {{Schets van een hoofdstuk over: Het Ontwerpen Van Algoritmen}}, month = sep, year = {1974}, note = {Handgeschreven raport, Technische Hogeschool Twente, Enschede, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf74e})
@unpublished{db-utwente:unpu:0000003438, author = {Fokkinga, Maarten M.}, title = {{On the interpretation of program schemes --- an algebraic approach}}, month = mar, year = {1974}, note = {Hand-written Lecture Notes after M. Nivat, Technische Hogeschool Delft, Delft, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf74c})
@article{db-utwente:arti:0000003435, author = {Fokkinga, Maarten M.}, title = {{A self-reproducing Algol 60 program}}, journal = {Algol Bulletin}, year = {1973}, volume = {35}, pages = {24--26}, publisher = {IFIP Working Group 2.1 on Algol}, info = {http://portal.acm.org/browse_dl.cfm?linked=1∂=affil&idx=J33&coll=portal&dl=ACM&CFID=49302222&CFTOKEN=79170506} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf73b})
@unpublished{db-utwente:unpu:0000003436, author = {Fokkinga, Maarten M.}, title = {{Inductive assertions patterns for recursive procedures}}, year = {1973}, note = {Technische Hogeschool Delft, Delft, Netherlands} }[Back to published / unpublished papers overview] (private key: \mmfkey{mmf73a})