Elucidative Programming Kurt Nørmark Aalborg University Denmark SIGDOC September 2000.

Slides:



Advertisements
Similar presentations
1 jNIK IT tool for electronic audit papers 17th meeting of the INTOSAI Working Group on IT Audit (WGITA) SAI POLAND (the Supreme Chamber of Control)
Advertisements

XP New Perspectives on Microsoft Office Word 2003 Tutorial 7 1 Microsoft Office Word 2003 Tutorial 7 – Collaborating With Others and Creating Web Pages.
Java Script Session1 INTRODUCTION.
Tutorial 6 Creating a Web Form
Chapter 3: Editing and Debugging SAS Programs. Some useful tips of using Program Editor Add line number: In the Command Box, type num, enter. Save SAS.
The Web Warrior Guide to Web Design Technologies
Goals Give you a feeling of what Eclipse is.
1 PROJECT Web-based Database Applications Lecture 1: Basic Internet Concepts & Databases - the History.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
Computers: Tools for an Information Age
Tutorial 1 Developing a Basic Web Page
1 Computing for Todays Lecture 22 Yumei Huo Fall 2006.
THE BASICS OF THE WEB Davison Web Design. Introduction to the Web Main Ideas The Internet is a worldwide network of hardware. The World Wide Web is part.
Creating a Web Page HTML, FrontPage, Word, Composer.
MS Access: Database Concepts Instructor: Vicki Weidler.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
HTML Comprehensive Concepts and Techniques Intro Project Introduction to HTML.
Introduction to High-Level Language Programming
DHTML. What is DHTML?  DHTML is the combination of several built-in browser features in fourth generation browsers that enable a web page to be more.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
WIKI IN EDUCATION Giti Javidi. W HAT IS WIKI ? A Wiki can be thought of as a combination of a Web site and a Word document. At its simplest, it can be.
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
Computers & Employment By Andrew Attard and Stephen Calleja.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
1 Web Basics Section 1.1 Compare the Internet and the Web Compare Web sites and Web pages Identify Web browser components Describe types of Web sites Section.
Postacademic Interuniversity Course in Information Technology – Module C1p1 Contents Data Communications Applications –File & print serving –Mail –Domain.
XP Dreamweaver 8.0 Tutorial 3 1 Adding Text and Formatting Text with CSS Styles.
1 In the good old days... Years ago… the WWW was made up of (mostly) static documents. –Each URL corresponded to a single file stored on some hard disk.
HTML Hyper Text Markup Language A simple introduction.
XP New Perspectives on The Internet, Sixth Edition— Comprehensive Tutorial 1 1 Browser Basics Introduction to the Web and Web Browser Software Tutorial.
Chapter 13. Applets and HTML HTML Applets Computer Programming with JAVA.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
XP New Perspectives on Microsoft Office FrontPage 2003 Tutorial 1 1 Microsoft Office FrontPage 2003 Tutorial 1 – Creating a Web Site.
Chapter 12: Web Usage Mining - An introduction Chapter written by Bamshad Mobasher Many slides are from a tutorial given by B. Berendt, B. Mobasher, M.
2007. Software Engineering Laboratory, School of Computer Science S E Web-Harvest Web-Harvest: Open Source Web Data Extraction tool 이재정 Software Engineering.
Cornell Notes Please print this slide show, follow the directions, and staple it to your reading response. Reading Informational Text Standard :
The HTTP is a standard that all Web browsers and Web servers must speak in order for the Web portion of the Internet to work.
XP Tutorial 8 Adding Interactivity with ActionScript.
The Other Face Or Why Document? By Chris Bradney Or Why Document? By Chris Bradney.
Tutorial 3 Adding and Formatting Text with CSS Styles.
David Lawrence 7/8/091Intro. to PHP -- David Lawrence.
History Internet – the network of computer networks that provides the framework for the World Wide Web. The web can’t exist without the internet. Browser.
XSDoc, JISBD’ XSDoc an Extensible Wiki-based Infrastructure for Framework Documentation Ademar Aguiar, Gabriel David, Manuel Padilha FEUP, INESC.
Tutorial 1 Developing a Basic Web Page. Objectives Learn the history of the Web and HTML Describe HTML standards and specifications Understand HTML elements.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
PRESENTED BY GRADUATE DESIGN GROUP 2 MEREDITH, JENNIFER, CAMMAY AND DIANE How to build a web site in Dreamweaver.
Web Design New Brighton High School Exploring the History of the World Wide WebWorld Wide Web.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
Web Technology (NCS-504) Prepared By Mr. Abhishek Kesharwani Assistant Professor,UCER Naini,Allahabad.
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
Tutorial 6 Creating a Web Form
introductionwhyexamples What is a Web site? A web site is: a presentation tool; a way to communicate; a learning tool; a teaching tool; a marketing important.
PROGRAMMING (1) LECTURE # 1 Programming and Languages: Telling the Computer What to Do.
XP Creating Web Pages with Microsoft Office
By: Jamie Morgan  A wiki is a web page or collection of web pages which you and your students can access to contribute or modify content without having.
PHP Basics and Syntax Lesson 3 ITBS2203 E-Commerce for IT.
DHTML.
Chapter 1 Introduction to HTML
WWW and HTTP King Fahd University of Petroleum & Minerals
CSCI-235 Micro-Computer Applications
Unified Modeling Language
Part of the Multilingual Web-LT Program
Ada – 1983 History’s largest design effort
Tutorial Developing a Basic Web Page
Intro Project Introduction to HTML.
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

Elucidative Programming Kurt Nørmark Aalborg University Denmark SIGDOC September 2000

Plan for this talk  Background  Briefly about literate programming  Characteristics of Elucidative Programming  An example of an elucidative Java program  Model and concepts  The elucidative tools  Tool philosophy and tool integration  Perspectives and concluding remarks

Literate programming Characteristics of literate programming:  Detachment of program explanation structure from program structure  The proximity between program fragments and their explanations  The pieces of program 'live in' the documentation  The opposite approach of conventional program commenting

Problems with literate programming  The Program is embedded in the documentation Only few programmers want to split their programs in fragments and to organize these as parts of the documentation  Language mixing The mix of three languages in a single document is not attractive  Documentation language, programming language, WEB interconnection language  Reading and comprehension problems in the WEB-source files  Extra level in error handling Error handling is more complicated because the errors need to be mirrored in the WEB source program  Reasonable solutions exist  Paper orientation Most existing tools are oriented towards printed paper presentation of the literate program

Elucidative Programming  Elucidative programming highlights:  User interface  Present the program and the documentation side-by-side in an Internet browser  Leave the program "in peace"  Does not impose any requirement on the organization of the program in files or directories  Address existing abstractions from the documentation  Does not rely on separately named program fragments  Supported by the development environment  Requires specialized editor functionality Elucidative programming is meant to remedy some of the identified problems with literate programming

The meaning of the word To elucidate is – "to make clear or plain, especially by explanation" – "to throw light on something complex"

Strong and weak points  Strong points  The possibility to explain transverse themes, such as design patterns  The use of navigational proximity instead of physical proximity  Weak point  Difficult to maintain an elucidative program

The elucidative programming model  Entities  Named abstractions on the program side  Sections and subsections on the documentation side  A naming scheme that allows us to address the program entities from the documentation  Relations  A doc-prog relation which connects explanations with program entities.  A prog-prog relation which connects applied and defined name occurrences  A doc-doc relation which connects explanations across the hierarchical documentation structure  Source markers  Represent positions in a program which we want to address in the explanations  Documentation bundle  An aggregation of programs, documentation texts, and additional properties (e.g., processing options)

The edoc source format Year To calculate which year a given UT time occur in the <slink role="describes" method uses successive counting. It starts out with the <slink role="describes" year and succesivly adds the number of seconds for the year in the loop until it ends up with less seconds than the next year contains. The length of a given year is returned by the method <slink role="describes" which check if the year is a leap year and returns the correct amount of seconds.

Tool overview  Our elucidative programming environment contains the following tools:  An elucidator which converts programs and documentation to HTML pages  An editor which is used for both programming and documentation purposes  A browser which is used for presentation of the elucidative program

The Editor tool  Design objectives:  The editor applies a split-screen layout in the same way as the browser  The editor's support of the programming language is available in non-changed form  The creation of the doc-prog and doc-doc relations is nursed in particular  The major navigation possibilities - as supported by the browser - are also present in the editor  Emacs keeps the documentation bundle together by a special marking of the buffers involved We have augmented Emacs with elucidative facilities

The elucidator tool Tasks of an elucidator  Abstraction  Parses the documentation and the program  Extracts knowledge about program and documentation entities  Synthesis  Generates the HTML pages with links that represent the three kinds of relations between entities The elucidator is the tool that processes a documentation bundle in order to produce an elucidative program

The Java Elucidator  Observations about the Java elucidator:  The naming scheme used to address program units from the documentation is rather complex  Much more elaborate to make a doc-prog link  Relies on an abstraction process which populates a relational database with program and documentation information  The synthesis task is done dynamically by the WWW server  It is also possible to generate a static set of HTML pages The Java Elucidator has been developed by five master students The first version is similar to the Scheme elucidator at the conceptual level The second version supports a more structured documentation approach

The design of the Java Elucidator

Tool integration Cooperation between the elucidator and the editor  The elucidator abstracts information from the documentation bundle which the editor can read on demand  The editor is always a step behind with respect to knowledge about the current documentation bundle  The elucidator can be activated very smoothly from the editor

Tool Philosophy Possible tool organizations:  Provide a brand new tool with an embedded editing environment for elucidative programming  Like Sametinger's Dogma System  Introduce a separate tool and augment an existing editor with knowledge about elucidative programming  Typically a Unix and Emacs solution  Include elucidative aspects into current integrated programming environments  Long term goal - requires industrial collaboration

A broader perspective on the use of an elucidator Documents with 'an elucidative potential':  Diaries and logs  Written code reviews and code walk throughs  Program tutorials  Design documents  Maintenance documentation Most documents that need to address program units or program details will be able to benefit from the ideas of elucidative programming

Status and conclusions  Contributions:  A renewal of the tool ideas for literate programming  A serious attempt to present programs and their internal understanding on the Internet  Status  A prototype of an elucidative Scheme environment exists  Two different versions of elucidative Java prototype environments exists  Version 1 supports a single essay node with explanations  Version 2 supports a much richer structuring of the explanations In the fall we will get both educational and industrial experience with version 2 of the Java environment