STEPS 2012 Progress and Final NSF Report

Total Page:16

File Type:pdf, Size:1020Kb

STEPS 2012 Progress and Final NSF Report STEPS Toward the Reinvention of Programming, 2012 Final Report Submitted to the National Science Foundation (NSF) October 2012 (In random order) Yoshiki Ohshima, Dan Amelang, Ted Kaehler, Bert Freudenberg, Aran Lunzer, Alan Kay, Ian Piumarta, Takashi Yamamiya, Alan Borning, Hesam Samimi, Bret Victor, Kim Rose VPRI Technical Report TR-2012-001 Viewpoints Research Institute, 1025 Westwood Blvd 2nd flr, Los Angeles, CA 90024 t: (310) 208-0524 ! 2012 REPORT ! STEPS Toward Expressive Programming Systems ! !"#$%&'(%'#)*+',&-'(./# ! 01# 23(#,4(56-#6,5',7#869:&;&#<:9:&-4=#>4(#"-'?4(@=#A'5#B4':?',=#C',.#D,'E5'(0',@=# ",4(#FE(G',=#"?4(#B41=#34(#H&E-4,.4=#A4;49:&#84-4-&14=#"?4(#C6,(&(@=#I'94-# $4-&-&=#C,'.#J&%.6,=#B&-#K69'L# J3)MH<3NA$#K)$)"KOI#3N$A3APA)# # # LA:'9'#4,'#.:'#$A)H$#,'9'4,%:',9#Q6,#.:'#1'4,#RSTRU#D6,#4#%6-+?'.'#?&9.&(@# 6Q#.:'#+4,.&%&+4(.9#6V',#.:'#?'(@.:#6Q#.:'#+,6W'%.#9''#.:'#9'%.&6(#6(#.:'# N$D#9&.'#X:&%:#%6(.4&(9#.:&9#,'+6,.U# TABLE OF CONTENTS — The STEPS Project for the General Public Summary of the STEPS project ! Origin ! STEPS aims at personal computing ! What does STEPS look like? ! STEPS is a “science project” ! General approach ! “T-shirt programming” ! Overall map of STEPS ! General STEPS results ! Making “runnable maths” ! Assessing STEPS Summary of STEPS research in 2012 ! Inventing & building a language for STEPS “UI and applications”, and rewriting Frank in it ! Producing a workable “chain of meaning” that extends from the screen all the way to the CPU ! Inventing methods that create automatic visualizers for languages created from metalanguages ! Continuing the start of “What vs How” programming via “Cooperating Languages and Solvers” Reflections on the STEPS Project to Date References Outreach Activities for final year of NSF part of the STEPS project Publications for the NSF part of the STEPS project Appendix I: KScript and KSWorld Appendix II: Making Applications in KSWorld ——— ! VPRI Techincal Report TR-2012-001 1 !"#$%!&'%$'()*#+,$-)($!"#$.#/#(01$'2314+$ 3Q#%6-+E.&(@#&9#&-+6,.4(.YQ6,#54&?1#?&Q'=#?'4,(&(@=#0E9&('99=#(4.&6(4?#5'Q'(9'=#W609=#4(5# -6,'Y.:'(#"#$%&'$'&()%*!$+($,-&,.!-/01#'&,.#&9#'*.,'-'?1#&-+6,.4(.U#D6,#'*4-+?'=#-4(1# 96Q.X4,'#919.'-9#.6541#4,'#-45'#Q,6-#-&??&6(9#.6#:E(5,'59#6Q#-&??&6(9#6Q#?&('9#6Q#+,6Z @,4-#%65'#.:4.#&9#.66#?4,@'=#%6-+?'*#4(5#Q,4@&?'#.6#0'#&-+,6V'5=#Q&*'5=#6,#&(.'@,4.'5U# 2<('#:E(5,'5#-&??&6(#?&('9#6Q#%65'#4.#[S#?&('9#+',#+4@'#&9#[SSS#066;9#6Q#\SS#+4@'9#'4%:]# A:&9#&9#0'16(5#:E-4(#9%4?'U7# M:4.# &Q# .:&9# %6E?5# 0'# -45'# ?&.',4??1# TSSS# .&-'9# 9-4??',Y6,# -6,'^# "(5# -45'#-6,'# +6X',QE?=#%?'4,=#9&-+?'=#4(5#,60E9.^#A:&9#X6E?5#0,&(@#6('#6Q#.:'#-69.#&-+6,.4(.#.'%:Z (6?6@&'9#6Q#6E,#.&-'#Q,6-#4#9.4.'#.:4.#&9#4?-69.#6E.#6Q#:E-4(#,'4%:Y4(5#54(@',6E9?1# %?69'#.6#0'&(@#6E.#6Q#%6(.,6?Y04%;#&(.6#:E-4(#9%4?'U# "(# 4(4?6@1# Q,6-# 54&?1# ?&Q'# &9# .6# %6-+4,'# .:'# @,'4.# +1,4-&5# 6Q# _&G4=# X:&%:# &9# -69.?1# 96?&5#0,&%;9#+&?'5#6(#.6+#6Q#'4%:#6.:',#X&.:#V',1#?&..?'#E940?'#9+4%'#&(9&5'=#.6#4#9.,E%.E,'# 6Q#9&-&?4,#9&G'#-45'#Q,6-#.:'#94-'#-4.',&4?9=#0E.#E9&(@#.:'#?4.',#&(V'(.&6(#6Q#.:'#4,%:U# A:'# ,'9E?.# X6E?5# 0'# -69.?1# E940?'# 9+4%'# 4(5# ,'`E&,'# ,6E@:?1# TaTSSS#.:'#(E-0',#6Q# 0,&%;9U#3(#6.:',#X6,59=#$2!2&3)!$,+!-/01%)4&'*!&,-5)$2)6!$5-7&')-'#5$%!+)2&.,!+/0&,$')2!0$')5&8 $%29# A:'# !$A)H$# A6X4,5# )*+,'99&V'# H,6@,4--&(@# $19.'-9/# +,6W'%.# &9# .4;&(@# .:'# Q4-&?&4,# X6,?5#6Q#+',96(4?#%6-+E.&(@#E9'5#01#-6,'#.:4(#4#0&??&6(#+'6+?'#'V',1#541Y%E,,'(.?1# ,'`E&,&(@#:E(5,'59#6Q#-&??&6(9#6Q#?&('9#6Q#%65'#.6#-4;'#4(5#9E9.4&(Y4(5#9E09.4(.&4??1# ,'%,'4.&(@# &.# E9&(@# ('X# +,6@,4--&(@# .'%:(&`E'9# 4(5# !4,%:&.'%.E,'9/# &(# 5,4-4.&%4??1# 9-4??',# 4-6E(.9#6Q#+,6@,4-#%65'U#A:&9#&9#-45'#+699&0?'#01#('X#45V4(%'9#&(#5'9&@(=# +,6@,4--&(@=#+,6@,4--&(@#?4(@E4@'9=#919.'-9#6,@4(&G4.&6(=#4(5#.:'#E9'#6Q#9%&'(%'#.6# 4(4?1G'#4(5#%,'4.'#-65'?9#6Q#96Q.X4,'#4,.&Q4%.9U## ! ! ! VPRI Techincal Report TR-2012-001 2 %2550(6$)7$,"#$%!&'%$'()*#+,$ Origin—! .:'#$A)H$#,'9'4,%:#+,6W'%.#4,69'#Q,6-#49;&(@#'-04,,499&(@#`E'9.&6(9#406E.#-4(1#919.'-9#2&(Z %?E5&(@#6E,#6X(7#9E%:#49b#!>6'9#.:&9#919.'-#:4V'#-E%:#.66#-E%:#%65'#4(5#&9#&.#-'99&',#.:4(#6E,#&(.E&Z .&6(#X:&9+',9^/#"?-69.#4?X419#.:'#4(9X',#X49#!1'9]/#M'#X4(.'5#.6#X,&.'#-E%:#9-4??',#%65'=#:4V'#&.#0'# -6,'#E(5',9.4(540?'#4(5#,'4540?'=#4(5#&Q#+699&0?'=#.6#:4V'#&.#0'#!+,'..1/=#'V'(#!0'4E.&QE?/U## STEPS Aims At “Personal Computing”—$A)H$#.4;'9#49#&.9#+,&-'#Q6%E9#.:'#51(4-&%#-65'?&(@#6Q#!+',Z 96(4?#%6-+E.&(@/#49#-69.#+'6+?'#.:&(;#6Q#&.=#?&-&.&(@#&.9'?Q#.6#.:'#;&(59#6Q#E9',#&(.',4%.&6(9#4(5#@'(',4?# 4++?&%4.&6(9#.:4.#4,'#%6(9&5','5#!9.4(54,5/Y.:&9#%:6&%'#&9#+4,.?1#.6#Q4%&?&.4.'#@,699#%6-+4,&96(9#0'.X''(# .4,@'.9#4(5#-65'?9U#$6b#4#_P3#6Q#!RU[>/#V&'X9#6Q#@,4+:&%4?#60W'%.9=#X&.:#40&?&.&'9#.6#-4;'#4(5#9%,&+.#4(5# ,'45#4(5#9'(5#4(5#,'%'&V'#.1+&%4?#56%E-'(.9=#'-4&?9#4(5#X'0#+4@'9#-45'#Q,6-#.'*.=#+&%.E,'9=#@,4+:&%4?# 60W'%.9=#9+,'459:''.#%'??9=#96E(59=#'.%U=#+?E9#4??#.:'#5'V'?6+-'(.#919.'-9#4(5#E(5',?1&(@#-4%:&(',1b# • H,6@,4-9#4(5#"++?&%4.&6(9#c#X6,5#+,6%'996,=#9+,'459:''.=#3(.',('.#0,6X9',=#6.:',#+,65E%.&V&.1#$M# • P9',#3(.',Q4%'#4(5#O6--4(5#F&9.'(',9#c#X&(56X9=#-'(E9=#4?',.9=#9%,6??#04,9#4(5#6.:',#%6(.,6?9=#'.%U# • _,4+:&%9#d#$6E(5#)(@&('#c#+:19&%4?#5&9+?41=#9+,&.'9=#Q6(.9=#%6-+69&.&(@=#,'(5',&(@=#94-+?&(@=#+?41&(@## • $19.'-9#$',V&%'9#c#5'V'?6+-'(.#919.'-=#54.4049'#`E',1#?4(@E4@'9=#'.%U# • $19.'-9#P.&?&.&'9#c#Q&?'#%6+1=#5'9;#4%%'996,&'9=#%6(.,6?#+4('?9=#'.%U# • F6@&%4?#F'V'?#6Q#<$#c#'U@U#Q&?'#-4(4@'-'(.=#3(.',('.#4(5#('.X6,;&(@#Q4%&?&.&'9=#'.%U# • I4,5X4,'#F'V'?#6Q#<$#c#'U@U#-'-6,1#-4(4@',=#+,6%'99#-4(4@',=#5'V&%'#5,&V',9=#'.%U# What Does STEPS Look Like?—3.#?66;9#4(5#4%.9#?&;'#Q4-&?Z &4,Y0E.# -6,'# &(.'@,4.'5Y+',96(4?# %6-+E.&(@]# 3.# :49# !E(&V',94?# 56%E-'(.9/# .:4.# %4(# -65'?# 4??# 56%E-'(.# Q6,-9=#4#E9',#&(.',Q4%'#4E.:6,&(@#4++,64%:#.:4.#&9#?&;'#4(# '*.'(5'5# Q6,-# 6Q# +,'9'(.4.&6(# 4E.:6,&(@=# 4(5# 4(# &(5'Z +'(5'(.# ,'+',.6&,'# 6Q# X419# .6# Q&(5=# Q'.%:=# 9'(5=# 94V'=# 0,645%49.=#'.%U=#.:'#56%E-'(.9U#A:&9#9E09E-'9#.:'#(6,-4?# 9%4..','5#!+,65E%.&V&.1#9E&.'/#&(.,4%.40?'#9.6V'+&+'9#6Q.'(# +,6V&5'5#&(9.'45#6Q#4#.,E?1#&(.'@,4.'5#919.'-#29''#0'?6X7U! ! “Ribbon-style” GUI with “bubbles” and “spill areas” Presentation at Turing Centenary done in STEPS ! Slide out panel for holding scripts, etc. scripts, holding for panel out Slide ! ! ! Collapsible Panels for all Collapsible panel for showing thumb- Area for making all constructions external resources such as nails of all kinds of documents ! files, email, Internet, etc. ! ! ! ! The STEPS “Cute Frank” General Authoring and Document Interface ! VPRI Techincal Report TR-2012-001 3 STEPS Is A “Science Project”—$A)H$#&9#(6.#4&-'5#4.#+,65E%&(@#4#('X#+,4%.&%4?#4?.',(4.&V'#.6#'*&9.&(@# HO#6+',4.&(@#919.'-9#4(5#4++?&%4.&6(9U#M'#56#X4(.#.6#%,'4.'#4#0/+)%#.:4.#&9#-E%:#-6,'#%6-+4%.=#E(5',Z 9.4(540?'=#'*+?4(4.6,1#4(5#'491#.6#X6,;#X&.:#.:4(#,'(5',&(@9#&(#(6,-4?#%65'U#3(#455&.&6(#X'e5#?&;'#.6# :4V'#.:'#-65'?#V4?&54.'5#01#0'&(@#40?'#.6#,E(#Q49.#'(6E@:#.6#0'#&(.',4%.'5#X&.:#49#4#,'4?#+',96(4?#%6-Z +E.&(@#919.'-U#3(#6.:',#X6,59=#X'#4,'#-69.#&(.','9.'5#&(#X:4.#&.#.4;'9#.6#Q&(5#4(5#,'+,'9'(.#.:'#0)$,&,.# 6Q#4#?4,@'#,E((40?'#919.'-U#A:E9#.:'#$A)H$#+,6W'%.#&9#4#;&(5#6Q#!9%&'(%'#'*+',&-'(./#,4.:',#.:4(#4(#'(@&Z ('',&(@#+,6W'%.#2X:&%:#9.&??#,'`E&,'5#4#%6(9&5',40?'#4-6E(.#6Q#%4,'QE?#96Q.X4,'#'(@&('',&(@#.6#+E??#6QQ7U# D6,#5'.4&?9=#X'#9E@@'9.#?66;&(@#4.#.:'#6,&@&(4?#+,6+694?#fN$Dg#4(5#.:'#1'4,?1#,'+6,.9#f$A)H$#K'+6,.9gU# A:'#6,&@&(4?#+?4(#Q6,#?&('9#6Q#%65'#%6E(.&(@#X49#6(?1#.6#%6E(.#!-'4(&(@Z?45'(/#%65'=#(6.#6+.&-&G4.&6(9U# <E,# 4&-# :','# X49# .6# 9''# X:4.# %6E?5# 0'# 56('# X&.:# 406E.# RS=SSS# ?&('9# 6Q# -'4(&(@Z%65'# Q6,# 'V',1.:&(@# !56X(#.6#.:'#-'.4?/U#A:&9#X6E?5#0'#9?6X#6(#4#%6(V'(.&6(4?#%6-+E.',#0E.#%6E?5#0'#.'9.'5#&(#,'4?Z.&-'# E9&(@#4#9E+',%6-+E.',=#6,#01#455&(@#6+.&-&G4.&6(#%65'#20E.#(6#('X#-'4(&(@97#!6(#.:'#9&5'/U## I6X'V',=#6('#6Q#.:'#'4,?1#-4W6,#+4,.9#6Q#.:'#919.'-#X'#X,6.'#,4(#Q49.',#.:4(#4(.&%&+4.'5=#4(5#.:&9#@6.#E9# .:&(;&(@#406E.#-4;&(@#&.#,E(#,'496(40?1#6(#4#%6(V'(.&6(4?#?4+.6+U#A:&9#X6E?5#,'`E&,'#96-'#6+.&-&G4Z .&6(9=#0E.#X'#.:6E@:.#X'#%6E?5#Q&(5#X419#.6#56#.:&9#X&.:6E.#455&(@#4(#'(6,-6E9#4-6E(.#6Q#%65'U#A:&9#&9# :6X#.:'#?49.#Q'X#V',9&6(9#6Q#$A)H$#X','#0E&?.=#4(5#X'#:4V'#0''(#%6E(.&(@#.:'#6+.&-&G4.&6(#%65'#.:4.# X'eV'#:45#.6#455U# A:&9#!9&,'(e9#96(@/#2.:4.#&9#96#X'??#;(6X(#.6#%6-+E.',&9.97#:49#%,'4.'5#4#+,6W'%.#.:4.#&9#4#0&.#5&QQ','(.#.:4(# .:'#6,&@&(4?#+,6+694?=#4(5#96-'#6Q#.:'#5&QQ','(%'9#4(5#.,45'6QQ9#4,'#5'.4&?'5#4:'45U# General Approach—F66;#Q6,#,))+2#4(5#&5'(.&Q1#:)5,)%2#.:4.#4,'#%?69'#.6#,))+2=#.:'(#-5)$')!%$,.#$.)2#.6#&-Z +?'-'(.# .:'# ;',('?9U# D&(5&(@# ;',('?9# &9# :'4V&?1# 5'9&@(# &(.'(9&V'U# O,'4.&(@# ?4(@E4@'9#%?'4(?1#4(5#,'?4Z .&V'?1#'49&?1#&9#6('#6Q#.:'#%'(.,4?#,))+2=#4(5#96#9'V',4?#6Q#6E,#;',('?9#4,'#4&-'5#4.#'49&?1#%,'4.&(@#('X#?4(Z @E4@'9U# !H6X',QE?# +,&(%&+?'/# :'E,&9.&%9# 4,'# E9'5# .6# 4&5# .:'# 5'9&@(# +,6%'99U# )U@U# 247# !h4.:# M&(9]/=# 207# 0E&?5#.:,6X4X419#.6#!Q&(5#.:'#4,%:'9/=#2%7#!+4,.&%?'9#4(5#Q&'?59/=#4(5#257#!$&-E?4.&(@#'&0)/U#"(5#96#Q6,.:U# “T-Shirt Programming”—<('#+4,.#6Q#.:'#!h4.:#M&(9]/#+,&(%&+?'#&9#5,4X(#Q,6-#.:'#4'9.:'.&%#5'?&@:.#6Q# h4*X'??e9# '`E4.&6(9# 6(# 4# .Z9:&,.Y.:'# 049&%# &5'4# .:4.# &.# &9# 6Q.'(# +699&0?'# .6# Q&(5a&(V'(.# -4.:'-4.&%9# .6# ,'+,'9'(.#4#-65'?#X:&%:#0,&(@9#4??#.:'#&-+6,.4(.#,'?4.&6(9:&+9#&(.6#6('#%69-&%#'1'QE?=#.Z9:&,.#9&G'U#A:&9# 0,&(@9#Q6,.:#Q4(%&QE?#4(5#-6.&V4.&6(4?#`E'9.&6(9#406E.#56-4&(#4,'49=#9E%:#49#!I6X#-4(1#.Z9:&,.9#56'9#&.# 29:6E?5#&.7#.4;'#.6#-65'?#.:&9#9&.E4.&6(^/#3(#.:'#$A)H$#+,6W'%.=#X'#49;#.:4.#`E'9.&6(#406E.#.:'#X:6?'#'(Z .',+,&9'=#4(5#406E.#.:'#+4,.9#6Q#.:'#919.'-=#Q6,#'*4-+?'#!I6X#-4(1#.Z9:&,.9#X&??#0'#,'`E&,'5#.6#5'Q&('#
Recommended publications
  • Ref.Pdf 7.02KB 2020-09-13 23:03:26
    Introduction to Smalltalk - References Ó Ivan Tomek 9/18/00 References Books Kent Beck: Smalltalk: Best Practice Patterns, Prentice-Hall, 1997. Timothy Budd: A Little Smalltalk, Addison-Wesley, 1987. Erich Gamma, Richard Helm, Ralph Johnson, John Vlassides: Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995. Adele Goldberg: Smalltalk-80: The Interactive Programming Environment, Addison-Wesley, 1983. Adele Goldberg, David Robson: Smalltalk-80: The Language and its Implementation, Addison-Wesley, 1985. Adele Goldberg, David Robson: Smalltalk-80, The Language, Addison-Wesley, 1989. Trevor Hopkins, Bernard Horan: Smalltalk: An Introduction to Application Development Using VisualWorks, Prentice-Hall, 1995. Tim Howard: The Smalltalk Developer’s Guide to Visual Works, SIGS Books, 1995. Ted Kaehler, Dave Patterson: A Taste of Smalltalk, Norton, 1986. Wilf Lalonde: Discovering Smalltalk, Addison-Wesley, 1994. Wilf Lalonde, John R. Pugh: Inside Smalltalk, Volume I, II, Prentice-Hall, 1991. Wilf Lalonde, John R. Pugh: Smalltalk/V, Practice and Experience, Prentice-Hall, 1994. Simon Lewis: The Art and Science of Smalltalk, Prentice-Hall, 1995. Chamond Liu: Smalltalk, Objects, and Design, Prentice-Hall, 1996. Mark Lorenz: Rapid Software Development with Smalltalk, SIGS Books, 1995. Lewis J. Pinson: An Introduction to Object-Oriented Programming and Smalltalk, Addison-Wesley, 1988. Jonathan Pletzke: Advanced Smalltalk, Wiley, 1997. Wolfgang Pree: Design Patterns for Object-Oriented Software Development, Addison-Wesley, 1994. Timothy Ryan: Distributed Object Technology, Concepts and Applications, Prentice-Hall, 1996. Dusko Savic: Object-Oriented Programming with Smalltalk, Prentice-Hall, 1990. Susan Skublics, Edward J. Klimas, David A. Thomas: Smalltalk with Style, Prentice-Hall, 1996. Dan Shafer, Dean A. Ritz: Practical Smalltalk, Springer-Verlag, 1991.
    [Show full text]
  • A Metacircular Architecture for Runtime Optimisation Persistence Clément Béra
    Sista: a Metacircular Architecture for Runtime Optimisation Persistence Clément Béra To cite this version: Clément Béra. Sista: a Metacircular Architecture for Runtime Optimisation Persistence. Program- ming Languages [cs.PL]. Université de Lille 1, 2017. English. tel-01634137 HAL Id: tel-01634137 https://hal.inria.fr/tel-01634137 Submitted on 13 Nov 2017 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Universit´edes Sciences et Technologies de Lille { Lille 1 D´epartement de formation doctorale en informatique Ecole´ doctorale SPI Lille UFR IEEA Sista: a Metacircular Architecture for Runtime Optimisation Persistence THESE` pr´esent´eeet soutenue publiquement le 15 Septembre 2017 pour l'obtention du Doctorat de l'Universit´edes Sciences et Technologies de Lille (sp´ecialit´einformatique) par Cl´ement B´era Composition du jury Pr´esident: Theo D'Hondt Rapporteur : Ga¨elThomas, Laurence Tratt Examinateur : Elisa Gonzalez Boix Directeur de th`ese: St´ephaneDucasse Co-Encadreur de th`ese: Marcus Denker Laboratoire d'Informatique Fondamentale de Lille | UMR USTL/CNRS 8022 INRIA Lille - Nord Europe Numero´ d’ordre: XXXXX i Acknowledgments I would like to thank my thesis supervisors Stéphane Ducasse and Marcus Denker for allowing me to do a Ph.D at the RMoD group, as well as helping and supporting me during the three years of my Ph.D.
    [Show full text]
  • The Future: the Story of Squeak, a Practical Smalltalk Written in Itself
    Back to the future: the story of Squeak, a practical Smalltalk written in itself Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace, and Alan Kay [Also published in OOPSLA ’97: Proc. of the 12th ACM SIGPLAN Conference on Object-oriented Programming, 1997, pp. 318-326.] VPRI Technical Report TR-1997-001 Viewpoints Research Institute, 1209 Grand Central Avenue, Glendale, CA 91201 t: (818) 332-3001 f: (818) 244-9761 Back to the Future The Story of Squeak, A Practical Smalltalk Written in Itself by Dan Ingalls Ted Kaehler John Maloney Scott Wallace Alan Kay at Apple Computer while doing this work, now at Walt Disney Imagineering 1401 Flower Street P.O. Box 25020 Glendale, CA 91221 [email protected] Abstract Squeak is an open, highly-portable Smalltalk implementation whose virtual machine is written entirely in Smalltalk, making it easy to debug, analyze, and change. To achieve practical performance, a translator produces an equivalent C program whose performance is comparable to commercial Smalltalks. Other noteworthy aspects of Squeak include: a compact object format that typically requires only a single word of overhead per object; a simple yet efficient incremental garbage collector for 32-bit direct pointers; efficient bulk- mutation of objects; extensions of BitBlt to handle color of any depth and anti-aliased image rotation and scaling; and real-time sound and music synthesis written entirely in Smalltalk. Overview Squeak is a modern implementation of Smalltalk-80 that is available for free via the Internet, at http://www.research.apple.com/research/proj/learning_concepts/squeak/ and other sites. It includes platform-independent support for color, sound, and image processing.
    [Show full text]
  • April 22 -- STEPS NSF 2012 Report
    ! 2012 REPORT ! STEPS Toward Expressive Programming Systems ! “A#Science#Experiment”# ! by# (In#random#order)#Yoshiki#Ohshima,#Dan#Amelang,#Ted#Kaehler,#Bert#Freudenberg,# Aran#Lunzer,#Alan#Kay,#Ian#Piumarta,#Takashi#Yamamiya,#Alan#Borning,#Hesam# Samimi,#Bret#Victor,#Kim#Rose*# VIEWPOINTS#RESEARCH#INSTITUTE# # # *These#are#the#STEPS#researchers#for#the#year#2012.#For#a#complete#listing# of#the#participants#over#the#length#of#the#project#see#the#section#on#the# NSF#site#which#contains#this#report.# TABLE OF CONTENTS — The STEPS Project for the General Public Summary of the STEPS project . Origin . STEPS aims at personal computing . What does STEPS look like? . STEPS is a “science project” . General approach . “T-shirt programming” . Overall map of STEPS . General STEPS results . Making “runnable maths” . Assessing STEPS Summary of STEPS research in 2012 . Inventing & building a language for STEPS “UI and applications”, and rewriting Frank in it . Producing a workable “chain of meaning” that extends from the screen all the way to the CPU . Inventing methods that create automatic visualizers for languages created from metalanguages . Continuing the start of “What vs How” programming via “Cooperating Languages and Solvers” Reflections on the STEPS Project to Date References Outreach Activities for final year of NSF part of the STEPS project Publications for the NSF part of the STEPS project Appendix I: KScript and KSWorld Appendix II: Making Applications in KSWorld ——— ! The$STEPS$Project$For$The$General$Public$ If#computing#is#important—for#daily#life,#learning,#business,#national#defense,#jobs,#and#
    [Show full text]
  • 1. with Examples of Different Programming Languages Show How Programming Languages Are Organized Along the Given Rubrics: I
    AGBOOLA ABIOLA CSC302 17/SCI01/007 COMPUTER SCIENCE ASSIGNMENT ​ 1. With examples of different programming languages show how programming languages are organized along the given rubrics: i. Unstructured, structured, modular, object oriented, aspect oriented, activity oriented and event oriented programming requirement. ii. Based on domain requirements. iii. Based on requirements i and ii above. 2. Give brief preview of the evolution of programming languages in a chronological order. 3. Vividly distinguish between modular programming paradigm and object oriented programming paradigm. Answer 1i). UNSTRUCTURED LANGUAGE DEVELOPER DATE Assembly Language 1949 FORTRAN John Backus 1957 COBOL CODASYL, ANSI, ISO 1959 JOSS Cliff Shaw, RAND 1963 BASIC John G. Kemeny, Thomas E. Kurtz 1964 TELCOMP BBN 1965 MUMPS Neil Pappalardo 1966 FOCAL Richard Merrill, DEC 1968 STRUCTURED LANGUAGE DEVELOPER DATE ALGOL 58 Friedrich L. Bauer, and co. 1958 ALGOL 60 Backus, Bauer and co. 1960 ABC CWI 1980 Ada United States Department of Defence 1980 Accent R NIS 1980 Action! Optimized Systems Software 1983 Alef Phil Winterbottom 1992 DASL Sun Micro-systems Laboratories 1999-2003 MODULAR LANGUAGE DEVELOPER DATE ALGOL W Niklaus Wirth, Tony Hoare 1966 APL Larry Breed, Dick Lathwell and co. 1966 ALGOL 68 A. Van Wijngaarden and co. 1968 AMOS BASIC FranÇois Lionet anConstantin Stiropoulos 1990 Alice ML Saarland University 2000 Agda Ulf Norell;Catarina coquand(1.0) 2007 Arc Paul Graham, Robert Morris and co. 2008 Bosque Mark Marron 2019 OBJECT-ORIENTED LANGUAGE DEVELOPER DATE C* Thinking Machine 1987 Actor Charles Duff 1988 Aldor Thomas J. Watson Research Center 1990 Amiga E Wouter van Oortmerssen 1993 Action Script Macromedia 1998 BeanShell JCP 1999 AngelScript Andreas Jönsson 2003 Boo Rodrigo B.
    [Show full text]
  • Supporting Concurrency Abstractions in High-Level Language Virtual Machines
    Faculty of Science and Bio-Engineering Sciences Department of Computer Science Software Languages Lab Supporting Concurrency Abstractions in High-level Language Virtual Machines Dissertation Submitted for the Degree of Doctor of Philosophy in Sciences Stefan Marr Promotor: Prof. Dr. Theo D’Hondt Copromotor: Dr. Michael Haupt January 2013 Print: Silhouet, Maldegem © 2013 Stefan Marr 2013 Uitgeverij VUBPRESS Brussels University Press VUBPRESS is an imprint of ASP nv (Academic and Scientific Publishers nv) Ravensteingalerij 28 B-1000 Brussels Tel. +32 (0)2 289 26 50 Fax +32 (0)2 289 26 59 E-mail: [email protected] www.vubpress.be ISBN 978 90 5718 256 3 NUR 989 Legal deposit D/2013/11.161/010 All rights reserved. No parts of this book may be reproduced or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the author. DON’T PANIC ABSTRACT During the past decade, software developers widely adopted JVM and CLI as multi-language virtual machines (VMs). At the same time, the multicore revolution burdened developers with increasing complexity. Language im- plementers devised a wide range of concurrent and parallel programming concepts to address this complexity but struggle to build these concepts on top of common multi-language VMs. Missing support in these VMs leads to tradeoffs between implementation simplicity, correctly implemented lan- guage semantics, and performance guarantees. Departing from the traditional distinction between concurrency and paral- lelism, this dissertation finds that parallel programming concepts benefit from performance-related VM support, while concurrent programming concepts benefit from VM support that guarantees correct semantics in the presence of reflection, mutable state, and interaction with other languages and libraries.
    [Show full text]
  • Notetaker2 Systenl Manual
    This document is for Xerox internal use on!y DRAFT· "DRAFT· DRAFT - DRAFT NoteTaker2 Systenl Manual BY Douglas G. Fairbairn and Bruce Horn October 1978 SSL-78-1 xxx ABSTRACT This manual describes the NoteTaker2 computing system. The NoteTaker2 is a portable computer of considerable power useful for a wide range of computational and simulation­ oriented functions. XEROX PALO ALTO RESEARCH CENTER 3333 Coyote Hill Road / Palo Alto / California 94304 This document is for Xerox internal use only DRAFT· DRAFT· DRAFT· DRAFT NoteTaker2 System Manual - DRAFT· DRAFT ~ September 30, 1979 5:39 PM 2 PREFACE NoteTaker2 is a very powerful portable computer intended for a wide variety of applications. Its intended users are "children of all ages": five-year-olds and high school students, as well as writers, researchers, artists, managers, and engineers. NoteTaker2 offers the capability of a general-purpose minicomputer, and allows it to be used without even plugging it into an AC power outlet. This manual describes the hardware components of the system in three levels of detail. The introduction summarizes the main features of the NoteTaker2 hardware. Section 2 gives an overview of the architecture. Section 3 offers the detail required to program the system and to interface other devices to it. NoteTaker2 has its roots in the long-time desire of the Learning Research Group at the Xerox Palo Alto Research Center (Xerox PARe) to have a portable system on which to experiment with its ideas concerning personal computers. The architecture of the machine was defined by Douglas Fairbairn of the LSI Systems Area at PARC in conjunction with LRG.
    [Show full text]
  • Instructions Separator
    An Introduction to Smalltalk for Objective-C Programmers O’Reilly Mac OS X Conference October 25—28, 2004 Philippe Mougin - [email protected] http://www.fscript.org IT Management & Consulting What you will get from this session • An understanding of the basic principles of Smalltalk. • The ability to read code. • An overview of Smalltalk options available on Mac OS X. Objective-C “Objective-C is a hybrid language that contains all of C language plus major parts of Smalltalk-80.” Brad Cox Objective-C: [playList addSong:aSong] Smalltalk: playList addSong:aSong Xerox Palo Alto Research Center Alan Kay Dan Ingalls Adele Goldberg Ted Kaehler Steve Jobs meets Smalltalk • “They showed me 3 things: graphical user interfaces, object oriented computing and networking.” • z • z • z • z Steve on a chair Smalltalk on a Xerox Alto III • “I only saw the first one which was so incredible to me that it saturated me...” • “If I'd only stayed another 20 minutes!” • “It took really until a few years ago for the industry to fully recreate it, in this case with NeXTSTEP.” Smalltalk • ANSI standard approved in 1998: ANSI INCITS 319-1998 • A pure object language: everything is an object •“Smalltalk'sdd design is due to the insight that everything we can describe can be represented by the recursive composition of a singled kind of behavioral building block that hides its •combination of state and process inside itself and can be dealt with• onls y through the exchange of messages.” Alan Kay • Message sending is (almost) the only control structure. • Interactive environment. • Simplicity and power.
    [Show full text]
  • On the Revival of Dynamic Languages
    On the Revival of Dynamic Languages Oscar Nierstrasz, Alexandre Bergel, Marcus Denker, St´ephane Ducasse, Markus G¨alli, and Roel Wuyts Software Composition Group, University of Bern www.iam.unibe.ch/∼scg Abstract. The programming languages of today are stuck in a deep rut that has developed over the past 50 years. Although we are faced with new challenges posed by enormous advances in hardware and internet technology, we continue to struggle with old-fashioned languages based on rigid, static, closed-world file-based views of programming. We argue the need for a new class of dynamic languages that support a view of pro- gramming as constant evolution of living and open software models. Such languages would require features such as dynamic first-class namespaces, explicit meta-models, optional, pluggable type systems, and incremental compilation of running software systems. 1 Introduction It is no exaggeration to say that mainstream programming languages of today are inherently static. That is to say, these languages tolerate change at compile time, but precious little at run-time. To state the case more strongly, most languages assume a closed world view: specifically, they assume that the world is consistent, and it will not change. That this assumption is patently false is obvious to anyone who has experi- enced the development of real, large software systems. Nevertheless, it is a fact that virtually no programming language today provides specific language mech- anisms to help developers cope with the fact that the systems they work on will, inevitably change [LB85]. As concrete examples, we can observe that it is hard to: – modify a running system, – make changes that impact the whole system, – reason about consequences of change, – introduce run-time reflection on-demand, – keep code, documentation and tests synchronized.
    [Show full text]
  • Chapter 3 – Design Patterns: Model-View- Controller
    SOFTWARE ARCHITECTURES Chapter 3 – Design Patterns: Model-View- Controller Martin Mugisha Brief History Smalltalk programmers developed the concept of Model-View-Controllers, like most other software engineering concepts. These programmers were gathered at the Learning Research Group (LRG) of Xerox PARC based in Palo Alto, California. This group included Alan Kay, Dan Ingalls and Red Kaehler among others. C language which was developed at Bell Labs was already out there and thus they were a few design standards in place[ 1] . The arrival of Smalltalk would however change all these standards and set the future tone for programming. This language is where the concept of Model-View- Controller first emerged. However, Ted Kaehler is the one most credited for this design pattern. He had a paper in 1978 titled ‘A note on DynaBook requirements’. The first name however for it was not MVC but ‘Thing-Model-View-Set’. The aim of the MVC pattern was to mediate the way the user could interact with the software[ 1] . This pattern has been greatly accredited with the later development of modern Graphical User Interfaces(GUI). Without Kaehler, and his MVC, we would have still been using terminal to input our commands. Introduction Model-View-Controller is an architectural pattern that is used for implementing user interfaces. Software is divided into three inter connected parts. These are the Model, View, and Controller. These inter connection is aimed to separate internal representation of information from the way it is presented to accepted users[ 2] . fig 1 SOFTWARE ARCHITECTURES As shown in fig 1, the MVC has three components that interact to show us our unique information.
    [Show full text]
  • Commemorative Booklet for the Thirty-Fifth Asilomar Microcomputer Workshop April 15-17, 2009 Programs from the 1975-2009 Worksho
    35 Commemorative Booklet for the Thirty-Fifth Asilomar Microcomputer Workshop April 15-17, 2009 Programs from the 1975-2009 Workshops This file available at www.amw.org AMW: 3dh Workshop Prologue - Ted Laliotis The Asilomar Microcomputer Workshop (AMW) has played a very important role during its 30 years ofexistence. Perhaps, that is why it continues to be well attended. The workshop was founded in 1975 as an IEEE technical workshop sponsored by the Western Area Committee ofthe IEEE Computer Society. The intentional lack of written proceedings and the exclusion of general press representatives was perhaps the most distinctive characteristic of AMW that made it so special and successful. This encouraged the scientists and engineers who were at the cutting edge ofthe technology, the movers and shakers that shaped Silicon Valley, the designers of the next generation microprocessors, to discuss and debate freely the various issues facing microprocessors. In fact, many features, or lack of, were born during the discussions and debates at AMW. We often referred to AMW and its attendees as the bowels of Silicon Valley, even though attendees came from all over the country, and the world. Another characteristic that made AMW special was the "required" participation and contribution by all attendees. Every applicant to attend AMW had to convince the committee that he had something to contribute by speaking during one of the sessions or during the open mike session. In the event that someone slipped through and was there only to listen, that person was not invited back the following year. The decades ofthe 70's and 80's were probably the defining decades for the amazing explosion of microcomputers.
    [Show full text]
  • Making Applications in Ksworld
    Making Applications in KSWorld Yoshiki Ohshima, Aran Lunzer, Bert Freudenberg Ted Kaehler VPRI Memo M-2013-003 Viewpoints Research Institute, 1209 Grand Central Avenue, Glendale, CA 91201 t: (818) 332-3001 f: (818) 244-9761 Making Applications in KSWorld Yoshiki Ohshima Aran Lunzer Bert Freudenberg Ted Kaehler Viewpoints Research Institute [email protected], [email protected], [email protected], [email protected] Abstract We report on our experiences in creating a GUI framework called KSWorld, which supports an interactive and declara- tive manner of application writing. The framework embod- ies direct manipulation, a high degree of loose coupling, and time-aware execution derived from Functional Reactive Pro- gramming (FRP). We also describe how a universal docu- ment editor was developed in this framework. The fields, or slots, of graphical widgets in KSWorld are reactive variables. Definitions of such variables can be added or modified in a localized manner, allowing on-the-fly cus- tomization of the visual and behavioral aspects of widgets and entire applications. Thus the KSWorld environment sup- ports highly exploratory application building: a user con- structs the appearance interactively with direct manipula- tion, then attaches and refines reactive-variable definitions to achieve the desired overall behavior. We also show that the system scales up sufficiently to sup- port a universal document editor. About 10,000 lines of code were needed to build the framework, the FRP evaluator, the document model and the editor, including the implementa- tion of the special language created for KSWorld. Figure 1. The Frank Document Editor. 1. Introduction The software for today’s personal computing environments GUI framework called LWorld [2].
    [Show full text]