[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::languages

Title:Languages
Notice:Speaking In Tongues
Moderator:TLE::TOKLAS::FELDMAN
Created:Sat Jan 25 1986
Last Modified:Thu May 22 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:394
Total number of notes:2683

177.0. "Richard Waters on Programming w/o Loops at DLB5" by DENTON::AMARTIN (Alan H. Martin) Tue Apr 12 1988 15:11

From:	ISTG::TSS "IST AI TSS * DLB5-1/E04 * DTN: 291-8252  11-Apr-1988 1412" 11-APR-1988 20:55:39.71
To:	TSS Distribution
CC:	
Subj:	SEMINAR ANNOUNCEMENT, 5/10, Dr. Waters







	TITLE:		"Efficient Programming Without Loops"

	SPEAKER:	DR. RICHARD C. WATERS
			Principal Research Scientist
			AI Laboratory
			Massachusetts Insititue of Technology

	DATE:		Tuesday, May 10, 1988

	TIME:		9:30-11:00 AM

	PLACE:		DLB5 Cafeteria

	HOST:		Jeffrey Piazza
			Principal Software Engineer
			AI Technology Group


	It has been known for a long time that programs expressed as
	functional expressions on aggregate data structures are much
	easier to write and maintain than equivalent programs expressed
	as loops. For example,

		(sum (sqrt (positive-elements V)))

	is a great deal easier to deal with than

		(let ((sum 0))
		  (dotimes (i (length V) sum)
		    (if (> (aref V i) 0)
		        (setq sum (+ sum (sqrt (aref V i))))))).

	Unfortunately, as typically implemented, functional expressions
	on aggregate structures are from 2 to 10 times less efficient
	than loops.  An approach has been developed which solves this
	problem by automatically converting functional expressions on
	aggregate into loops.  Using this approach, essentially every
	loop in most programs can be eliminated without any loss of 
	efficiency.

	The approach could be used in conjunction with any programming 
	language.  A macro package has been implemented that adds support 
	for the approach to Common LISP.  And a PASCAL implementation is 
	under development.

	R.C. Waters, 'Obviously Synchronizable Series Expressions:  
	Part I: A User's Manual for the OSS Macro Package,' MIT/AIM-
	958a, 3/88.
	R. C. Waters, 'Obviously Synchronizable Series Expressions:
	Part II: Overview of the Theory and Implementation,' MIT/AIM-
	959a, 3/88.





	"Efficient Programming Without Loops" Seminar
	Dr. Richard C. Waters
	Tuesday, May 10, 1988, 9:30 AM, DLB5 Cafeteria




	Dr. Waters received the B.S. magna cum laude in applied math
	(computer science) from Brown University in 1972, the M.S. 
	in computer science from Harvard University in 1973, and the 
	Ph.D. in computer science with a minor in linguistics from
	MIT in 1978.  Since then he has worked in the AI Lab at MIT,
	where he is currently a principal research scientist.  In
	addition to the Programmer's Apprentice project, his interests
	include programming languages and engineering problem solving. 	




	============================================================
	NOTE:  As a courtesy to the speaker and the people attending
	       the seminar, please refrain from using the vending
	       area during the seminar.  Thank you.
	============================================================
T.RTitleUserPersonal
Name
DateLines
177.1AITG::VANROGGENThu Apr 14 1988 01:427
    There are a number of iteration constructs being considered for
    inclusion in the ANSI X3J13 (Common Lisp) standard; OSS is one
    of them.  One of the benefits of the OSS approach is that
    certain kinds of parallelism are easily achievable.
    
    The code is available in AITG::LISP$TOOLS:OSS*.* for use on
    VAX LISP V2.2.
177.2exiMIST::BINGHAMJohn BinghamSat May 28 1988 01:286
    The idea of using expressions that have power to avoid loops for
    repeated operations on data sets in whole or selected part has been
    in APL for years.  Is this LISP dependent or bringing ideas from
    another language into LISP?
    
                                                      John
177.3TLE::NELSONWed Jun 01 1988 13:3611
    He described the technique he has used as applicable to any language,
    and as being more general than what is available in APL.  He also
    has done an implementation in Pascal, and is interested in talking
    to some of the "traditional" language groups here if they are
    interested.  He mentioned as a possible application providing a
    syntax that could be used for vectorizing or making other use of
    parallel processors when they are available, and that could be
    implemented by the means he described in his talk for serial machines
    in an "optimal" manner.
    
    Beryl