[ACM Press the third ACM SIGPLAN conference - San Diego, California (2007.06.09-2007.06.10)] Proceedings of the third ACM SIGPLAN conference on History of programming languages - HOPL III - AppleScript
معرفی کتاب «[ACM Press the third ACM SIGPLAN conference - San Diego, California (2007.06.09-2007.06.10)] Proceedings of the third ACM SIGPLAN conference on History of programming languages - HOPL III - AppleScript» نوشتهٔ ACM - Association for Computing Machinery، منتشرشده توسط نشر Association for Computing Machinery در سال 2007. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.
FM-1 our field. Work began three years ago in 2004 to create a Program Committee, to establish paper solicitation criteria (see appendix to this proceedings), and to encourage submissions. As with its predecessors, the goal of HOPL-III was to produce an accurate historical record of programming language design and development. To achieve this goal, the Program Committee worked closely with prospective authors and outside experts to help ensure that all the papers were of high quality. As with HOPL-I and II, there were multiple rounds of reviewing to ensure that all the selected papers met requirements for both technical accuracy and historical completeness.The criteria for the programming languages considered appropriate for HOPL-III were:1. The programming language came into existence before 1996, that is, it was designed and described at least 11 years before HOPL-III (2007).2. The programming language has been widely used since 1998 either (i) commercially or (ii) within a specific domain. In either case, "widely used" implies use beyond its creators.3. There also are some research languages which had great influence on widely used languages that followed them. As long as the research language was used by more than its own inventors, these will be considered to be appropriate for discussion at HOPL-III.The twelve papers in this proceedings represent original historical perspectives on programming languages that span at least five different programming paradigms and communities: object-oriented, functional, reactive, parallel, and scripting. At the time of the conference, the programming languages community continues to create broader mini-histories of each of those paradigms at http://en.wikipedia.org/wiki/HOPL A conference of this scope and level of preparation could not have happened without the time and assistance of many, many people. First we must thank our colleagues on the program committee History of Programming Languages Conference: HOPL-III Co-Chairs Introduction......Page 3 Saturday, 9 June 2007......Page 6 Sunday, 10 June 2007......Page 7 Introduction......Page 8 Automation and Customization......Page 9 Background......Page 10 Family Farm......Page 11 Apple Event Manager......Page 12 Apple Events Implementation......Page 13 Application Terminologies......Page 14 Programming Language Features......Page 17 AppleScript Implementation......Page 18 Multiple Scripting Languages......Page 19 Recording Events as Scripts......Page 20 Development Process......Page 21 Documentation......Page 22 User Testing......Page 23 Publishing Workflow......Page 24 Evolution......Page 25 Evaluation......Page 26 References......Page 27 Overview......Page 29 DEL......Page 31 Birth......Page 32 History......Page 33 Lua 2......Page 35 Lua 3......Page 37 Lua 5......Page 38 Types......Page 39 Tables......Page 40 Block comments......Page 41 Lexical scoping......Page 42 Coroutines......Page 43 Extensible semantics......Page 44 C API......Page 45 Userdata......Page 49 Retrospect......Page 50 Acknowledgments......Page 52 References......Page 53 Background......Page 55 Modules......Page 56 The Type CARDINAL......Page 57 Implementations......Page 58 From Modula to Oberon......Page 59 Features Omitted from Oberon......Page 60 New Features Introduced in Oberon......Page 61 Implementations......Page 62 Acknowledgments......Page 63 References......Page 64 Introduction......Page 65 Background: C++ 1979-1991......Page 66 The Birth of C with Classes......Page 67 Feature Overview......Page 68 The C++ World in 1991......Page 69 The ISO C++ Standards Process......Page 70 Chronology......Page 71 The Standard Library: 1991-1998......Page 72 Pre-STL containers......Page 73 The STL emerges......Page 74 STL ideals and concepts......Page 76 Function objects......Page 79 Stepanov’s view......Page 81 The impact of the STL......Page 82 Other Parts of the Standard Library......Page 83 Language Features: 1991-1998......Page 84 Namespaces......Page 85 Declarations in conditions......Page 86 The Export Controversy......Page 87 Exception Safety......Page 88 Resource management......Page 89 Automatic Garbage Collection......Page 90 WhatWasn’t Done......Page 91 Standards Maintenance: 1997-2005......Page 92 The Performance TR......Page 93 The Library TR......Page 95 C++ in Real-World Use......Page 96 Programming Styles......Page 98 Template metaprogramming......Page 99 Libraries, Toolkits, and Frameworks......Page 100 ABIs and Environments......Page 101 Tools and Research......Page 102 Java and Sun......Page 103 Microsoft and .Net......Page 105 C++0x......Page 106 Technical Challenges......Page 107 Suggested Language Extensions......Page 108 Auto......Page 109 Concepts......Page 110 Embarrassments......Page 112 Standard libraries......Page 113 Why Did C++ Succeed?......Page 114 Effects of the Standards Process......Page 115 Influences and impact......Page 116 Impact of C++......Page 117 Beyond C++......Page 118 References......Page 119 Pre-1982......Page 124 December 1982 to mid 1983: The AvionicsMotivation......Page 125 1983: Statecharts Emerging......Page 126 On the Language Itself......Page 127 Comments on the Underlying Philosophy......Page 129 1984–1986: Building a Tool......Page 131 The Woes of Publication......Page 132 1994–1996: The Object-Oriented Version......Page 134 On Semantics......Page 135 Miscellaneous......Page 137 Acknowledgments......Page 138 Figures......Page 139 References......Page 165 Introduction......Page 167 Setting the scene......Page 168 SPOTS, DOTS, LOTS......Page 169 Erlang conceived......Page 170 Frenzied activity......Page 171 Error handling......Page 172 Compilation to Strand......Page 173 Efficiency needed – the JAM......Page 174 How receive changed and why......Page 176 Years pass .........Page 177 Turbo Erlang......Page 178 The collapse of AXE-N......Page 179 BOS – OTP and behaviors......Page 180 Type inference of Erlang programs......Page 181 Erlang is banned......Page 182 Concurrency oriented programming and the future......Page 183 Mistakes made and lessons learnt......Page 184 Finally......Page 186 Change log of erlang.pro......Page 187 Erlang examples......Page 190 References......Page 192 Background......Page 193 Parallel Computer Systems......Page 194 Software Support for Parallel Programming......Page 196 HPF and Its Precursors......Page 197 The HPF Language......Page 202 Experience with the Language......Page 204 Impact on Fortran and its Variants......Page 206 HPCS Languages......Page 207 Parallel Scripting Languages......Page 208 Lessons Learned......Page 209 References......Page 210 Starting Out......Page 215 Portability......Page 216 The Time Line......Page 217 The Programmer’s View of ZPL......Page 219 Antecedents......Page 220 Type Architecture......Page 221 CTA – Candidate Type Architecture......Page 222 Preparatory Experiments......Page 223 Global View versus Shared Memory......Page 224 Early Language Decisions......Page 225 Other Languages......Page 226 Generalizing Regions......Page 227 Region Operators......Page 228 Reduce and Flood......Page 229 Epic Battle: Left-hand Side s......Page 231 Working With Users......Page 232 The Idea......Page 233 Specifics of the Model......Page 234 Verifying The Predictions......Page 236 Ironman – The Compiler Writer’sCommunication Interface......Page 237 The Power of Testing......Page 238 Scalar Performance......Page 239 After Classic ZPL......Page 240 Hierarchical Arrays......Page 241 User-defined Scans and Reduces......Page 242 Pipelines and Wavefronts......Page 243 Data Parallelism and Task Parallelism......Page 244 Problem Space Promotion......Page 245 Assessment......Page 246 References......Page 249 Introduction......Page 252 Object-Oriented (and Other) Programming Languages Before Self......Page 253 Smalltalk Language......Page 254 Smalltalk Programming Environment......Page 255 Implementation Technology for Smalltalk and OtherInterpreted Languages......Page 256 Xerox PARC in the 1980s......Page 257 ARK, The Alternate Reality Kit......Page 258 The Basic Ideas......Page 259 More Semantics......Page 262 Self Takes Hold at Stanford and Evolves......Page 264 The First Self Virtual Machine, a.k.a. Self-89......Page 265 The Second-Generation Self Virtual Machine, a.k.a.Self-90......Page 267 Language Elaborations......Page 268 Manifesting Objects on the Screen......Page 270 Reflecting with Mirrors......Page 273 More Implementation Work......Page 274 Cartoon Animation for UI1......Page 275 UI2 and the Morphic Framework......Page 276 From UI2 to Kansas......Page 279 Significant Events While at Sun......Page 282 Programming Language Research......Page 284 Distributed Programming Research......Page 285 Summary: Impact of Self Language......Page 286 Cartoon Animation in the User Interface......Page 287 Language......Page 288 Conclusion......Page 292 Epilogue: Where Are They Now?......Page 293 Self 3.0......Page 294 Self 4.0......Page 295 Self 4.3 (The latest release as of 2006)......Page 296 References......Page 297 Introduction......Page 302 People......Page 303 The DELTA system description language......Page 304 The Joint Language Project......Page 305 Research approach......Page 306 One abstraction mechanism......Page 307 Project organization......Page 308 Project events......Page 310 The Mjølner Project......Page 313 Programming as modeling......Page 314 Object-orientation as physical modeling......Page 315 Relation to other perspectives......Page 316 Concepts and abstraction......Page 317 Additional notes......Page 318 Examples of abstraction mechanisms......Page 319 Expected benefits from the unification......Page 320 Similarities between object and activationrecord......Page 321 The pattern......Page 322 Subpatterns......Page 324 Block structure......Page 325 Virtual procedures......Page 326 Parameterized classes......Page 327 Co- and contravariance......Page 328 Part objects......Page 329 Inheritance from part objects......Page 330 References to part objects......Page 331 Control structures and iterators......Page 332 Dynamic structure......Page 333 The first version......Page 334 Modeling......Page 335 Parameters and return values......Page 336 Value concept......Page 337 Exception handling......Page 338 Modules as objects......Page 339 Multiple inheritance......Page 340 Syntax......Page 341 Language evolution......Page 342 Implementations of BETA......Page 343 The JVM, CLR, and Smalltalk VMcompilers......Page 344 Implementation aspects......Page 345 Research......Page 346 Conclusion......Page 349 References......Page 352 Appendix: Time line......Page 358 Ancient History......Page 359 The People and the Beginning of Emerald......Page 360 The Eden System......Page 361 Terminology......Page 362 The Goals of Emerald......Page 363 How We Worked......Page 365 Immutability......Page 367 Objects Were Encapsulated......Page 368 Object Constructors Replace Classes......Page 369 Emerald’s Goals as They Relate to Types......Page 370 Types Were Sets of Operations......Page 371 Type Checking and Error Messages......Page 372 Types and efficiency......Page 373 Type:Type......Page 374 Conformity, nil, and the Lattice of Data Types......Page 375 Polymorphism......Page 378 The Emerald Process Model......Page 380 Synchronization......Page 382 Compiler-Kernel Integration......Page 383 Location Primitives......Page 384 Implementation......Page 385 Availability......Page 386 Object Layout and Object IDs......Page 387 Choice of Networking Protocols......Page 388 Applications and Influences of Emerald......Page 389 Influences of Emerald......Page 390 Later Developments......Page 392 Mobile Objects......Page 394 Method Lookup and AbCon Vectors......Page 395 Choosing Between Eager and Lazy Evaluation......Page 396 Remote Invocations......Page 397 Process Creation......Page 398 A Local Procedure Call Benchmark......Page 399 Summary......Page 400 References......Page 401 Appendix: Historical Documents......Page 405 Getting to Oz......Page 406 Introduction......Page 410 The call of laziness......Page 411 The birth of Haskell......Page 412 The first meetings......Page 413 Refining the design......Page 414 Was Haskell a joke?......Page 415 Haskell has type classes......Page 417 Haskell is a committee language......Page 418 Haskell and Haskell 98......Page 419 Syntax......Page 420 Functions and function application......Page 421 Declaration style vs. expression style......Page 422 Algebraic types......Page 423 Tuples and irrefutable patterns......Page 424 n+k patterns......Page 425 Type classes......Page 426 Ambiguity and type defaulting......Page 427 Functional dependencies......Page 428 Beyond type classes......Page 429 Summary......Page 430 Streams and continuations......Page 431 Monads......Page 432 Monadic I/O......Page 434 Subsequent developments......Page 435 Modules and packages......Page 436 The Glasgow Haskell Compiler......Page 437 Gofer and Hugs......Page 438 Yale Haskell......Page 439 Time profiling......Page 440 Controlling evaluation order......Page 441 Debugging and tracing......Page 442 Testing tools......Page 443 Combinator libraries......Page 444 Domain-specific embedded languages......Page 445 XML and web-scripting languages......Page 446 Computer music......Page 447 Graphical user interfaces......Page 448 Education......Page 449 A survey of Haskell in higher education......Page 450 Galois Connections......Page 451 Linspire......Page 452 The Haskell community......Page 453 Influence on other languages......Page 454 Acknowledgements......Page 455 References......Page 456 Appendix: Content Guidelines for Authors......Page 465
دانلود کتاب [ACM Press the third ACM SIGPLAN conference - San Diego, California (2007.06.09-2007.06.10)] Proceedings of the third ACM SIGPLAN conference on History of programming languages - HOPL III - AppleScript