Baumgartner - @Ddprrt - Nov 2020 Brendan Eich JS Had to “Look Like Java” Only Less So, Be Java’S Dumb Kid Brother Or Boy- Hostage Sidekick

Total Page:16

File Type:pdf, Size:1020Kb

Baumgartner - @Ddprrt - Nov 2020 Brendan Eich JS Had to “Look Like Java” Only Less So, Be Java’S Dumb Kid Brother Or Boy- Hostage Sidekick Modern JavaScript Baumgartner - @ddprrt - Nov 2020 Brendan Eich JS had to “look like Java” only less so, be Java’s dumb kid brother or boy- hostage sidekick. Plus, I had to be done in ten days or something worse than JS would have happened. Java Perl HyperTalk Strings, Arrays, Syntax Event Handlers Regular Expressions Self Scheme AWK Prototype inheritance Closures functions Eich’s subversive Agenda • Objects without classes • First class functions • Closures • Prototypes • Some Java influences Eich’s subversive Agenda • Objects without classes var person = { name: "Stefan", • First class functions age: 38 } • Closures • Prototypes • Some Java influences Eich’s subversive Agenda • Objects without classes function greet(name) { alert("Hello " + name) • First class functions } • Closures function stefanize(funcs) { • Prototypes funcs("Stefan") } • Some Java influences stefanize(greet) Eich’s subversive Agenda • Objects without classes function greet(name) { return function(greeting) { • First class functions alert(greeting + ", " + name) • Closures } } • Prototypes greet("Stefan")("Salut") • Some Java influences Eich’s subversive Agenda • Objects without classes var lifeform = { Person.prototype = lifeform greet: function() { Dog.prototype = lifeform alert("Hello, " + this.name) • First class functions }, var stefan = new Person("Stefan") species: function() { stefan.greet() • Closures alert("I am a " + this.species) } var waldi = new Dog( } “Waldi”, “Dackel” • Prototypes ) function Person(name) { waldi.greet() this.name = name • Some Java influences this.species = "Human" } function Dog(name, kind) { this.name = name this.species = "Dog" this.kind = kind } Eich’s subversive Agenda • Objects without classes • First class functions • Closures • Prototypes • Some Java influences Eich’s subversive Agenda • Objects without classes !/ types as objects • First class functions var message = new String("Hello") • Closures • Prototypes • Some Java influences Eich’s subversive Agenda • Objects without classes !/ types as objects • First class functions var message = new String("Hello") • Closures !/ And the Y2K bug in Date • Prototypes • Some Java influences Eich’s subversive Agenda • Objects without classes !/ types as objects • First class functions var message = new String("Hello") • Closures !/ And the Y2K bug in Date • Prototypes • Some Java influences JavaScript is what comes after C if C++ never happened Stefan Baumgartner JavaScript is Lisp in C’s clothing. Bryan Cantrill 1995 JavaScript’s inception 1996 Introduction of JScript 1995 1996 1995 1997 ECMAScript Standardization 1996 1999 ECMAScript 3 RegEx, better String handling try/catch, etc. 1995 1997 1996 1999 1995 1997 2003 ECMAScript 4 abandoned Classes, interfaces, types, … 1996 1999 2009 ECMAScript 5 “strict” mode, property descriptors JSON, …. 1995 1997 2003 1996 1999 2009 1995 1997 2003 1996 1999 2009 1995 1997 2003 2015 ECMAScript 6 / ES2015 Classes, modules, better for loops Destructuring, Promises, Arrow functions Generators … 1996 1999 2009 1995 1997 2003 2015 1996 1999 2009 2016 2017 2018 1995 1997 2003 2015 https://www.ecma-international.org/activities/Languages/Language%20overview.pdf Modern JavaScript in Action Block scope assignments !/ ES5 !/ ES6+ var x = 0 let x = 0 if(someCondition) { if(someCondition) { var x = 1 let x = 1 } } console.log(x) !/ x != 1 console.log(x) !/ x != 0 Const assignments const x = "Stefan" const person = { name: "Stefan" x = 2 } !/ Uncaught TypeError: person.age = 38 !/ Assignment to constant variable. person.name = "Not Stefan" const assignments are block scoped const assignments are immutable reference assignments Objects, Arrays, Sets can still be mutated Destructuring const position = [10, 20] const x = position[0] const y = position[1] !/ Destructuring! const [x, y] = position const [a, b, !!.rest] = [1, 2, 3, 4, 5]; !/ rest operator !!. console.log(a); !/ 1 console.log(b); !/ 2 console.log(rest); !/ [3, 4, 5] Destructuring function getPosition() { return { x: 50, y: 200, z: 13 }; } const { x, y } = getPosition(); !/ renames const { z : zIndex } = getPosition(); !/ defaults const { a = 0 } = getPosition(); Object creation !/ ES5 var name = "Stefan"; var age = 38; var person = { name: name, age: age, whoami: function() { return "I am " + this.name + " and I am " + this.age + "years old" } } Object creation !/ ES6+ const name = "Stefan"; const age = 38; const person = { name, age, whoami() { !/ String template literals return `I am ${this.name} and I am ${this.age} years old` } } Template literals can have any expression within ${} and are multiline for loops for (let value of myArray) { !/ !!. } for (let index of myArray.keys()) { !/ !!. } for (let [index, value] of myArray.entries()) { !/ !!. } for (let key in myObject) { } Functions !/ Default parameters function setVAT(price, vat = 0.2) { return price * (1 + vat) } !/ Destructuring function printPerson({ name, age }) { !/!!. } !/ Rest arguments function recursivePrint(el, !!.rest) { console.log(el); recursivePrint(rest) } recursivePrint(1, 2, 3, 4, 5, 6) Arrow functions const shout = (name) != name.toUpperCase() Arrow functions are strictly anonymous Adding a block { } after the arrow requires a return statement Wrap objects in parens to return them immediately Arrow functions are lexical scoped: this is either module scope, class scope, or last function scope Spread operator !/ passing arguments as list fn(1, 2, 3) !/ as array fn(!!.[1, 2, 3]) !/ concatenation !/ z != [1, 2, 3, 4, 5, 6, 7] const z = [1, 2, !!.[3, 4, 5], 6, 7] !/ cast lists to arrays const imgs = [!!.document.querySelectorAll("img")] !/ merge Objects const person = { !!.nameAndAge, !!.personFunctions } Classes !/ ES5 !/ ES6+ function Car () { class Car { this.fuel = 0; constructor () { this.distance = 0; this.fuel = 0 } this.distance = 0 } Car.prototype.move = function () { move () { this.fuel!-; this.distance += 2; this.fuel!-; this.distance += 2; } } addFuel () { Car.prototype.addFuel = function () { this.fuel!+; this.fuel!+ } } } Notes on classes Classes are - Syntactic sugar for prototype / constructor function Object generation - A more convenient way to add getters, setters, and private properties - A more convenient way to add to the prototype chain via extends Classes are not - A type - An abstraction - Java Things left out - Maps, Sets, WeakMaps, WeakSets - New functions in Array, Object, Number, String - Reflection, Proxies, generator functions - Symbols and Iterators - ECMAScript modules - async / await and Promises (we might do that in live coding…) Wrapping up - JavaScript is not a toy language anymore —> powerful constructs! - ECMAScript standards are released once per year - Objects and functions are still at the heart of JavaScript, it just gets more conventient - Convenience functions are idiomatic —> use them TypeScript Baumgartner - @ddprrt - Nov 2020 1100001010100011 49827 -15709 £ … What is a type? A type is a classification of data that defines the operations that can be done on that data, the meaning of the data, and the set of allowed values. Vlad Riscutia Typing is checked by the compiler and/or run time to ensure the integrity of the data, enforce access restrictions, and interpret the data as meant by the developer. Vlad Riscutia Does JavaScript have types http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%201st%20edition,%20June%201997.pdf Type Hierarchy in JavaScript https://exploringjs.com/impatient-js/ch_values.html Type Hierarchy in TypeScript TypeScript is a superset of JavaScript TS JS 1996 1999 2009 2016 2017 2018 1995 1997 2003 2015 ECMAScript 6 / ES2015 1996 1999 2009 2016 2017 2018 1995 1997 2003 2011 TypeScript’s inception 2015 ECMAScript 6 / ES2015 Anders Hejlsberg https://channel9.msdn.com/Shows/Going+Deep/Anders-Hejlsberg-and-Lars-Bak-TypeScript-JavaScript-and-Dart TypeScript is JavaScript! ⭐ Open Source and Open Development " Closely track ECMAScript standard # Innovate in type system $ Best of breed tooling ⏬ Continually lower barrier to entry & Community, community, community ⭐ TypeScript IS JavaScript ⭐ Language innovation through ECMAScript ⭐ Type system innovation through use cases ⭐ Tooling as prime citizen Non-goal: Apply a sound or "provably correct" type system. Instead, strike a balance between correctness and productivity. ⛩ Gradual, structural, generic ( Distinct value / type namespaces ) Extensive type inference * Control flow analysis & Object-oriented and functional Gradual typing function addVAT(price, vat) { return price * (1 + vat) // Oh! You add and multiply with numbers, so it's a number } addVAT2(2, 0.2).toUpperCase() // Immediate Krawutzikaputzi function addVAT(price, vat = 0.2) { // great, `vat`is also number! return price * (1 + vat) } /** * Adds VAT to a price * * @param {number} price The price without VAT * @param {number} vat The VAT [0-1] * * @returns {number} */ function addVAT(price, vat = 0.2) { return price * (1 + vat) } /** * @typedef {Object} Article * @property {number} price * @property {number} vat * @property {string} string * @property {boolean=} sold */ /** * Now we can use Article as a proper type * @param {[Article]} articles */ function totalAmount(articles) { return articles.reduce((total, article) => { return total + addVAT(article) }, 0) } function addVAT(price: number, vat: number): number { return price * (1 + vat) } // or: declare, don’t implement (aka Header file, file comes from a different lib) declare function addVAT(price: number, vat: number): number; const defaultOrder = { This object
Recommended publications
  • Javascript and the DOM
    Javascript and the DOM 1 Introduzione alla programmazione web – Marco Ronchetti 2020 – Università di Trento The web architecture with smart browser The web programmer also writes Programs which run on the browser. Which language? Javascript! HTTP Get + params File System Smart browser Server httpd Cgi-bin Internet Query SQL Client process DB Data Evolution 3: execute code also on client! (How ?) Javascript and the DOM 1- Adding dynamic behaviour to HTML 3 Introduzione alla programmazione web – Marco Ronchetti 2020 – Università di Trento Example 1: onmouseover, onmouseout <!DOCTYPE html> <html> <head> <title>Dynamic behaviour</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <div onmouseover="this.style.color = 'red'" onmouseout="this.style.color = 'green'"> I can change my colour!</div> </body> </html> JAVASCRIPT The dynamic behaviour is on the client side! (The file can be loaded locally) <body> <div Example 2: onmouseover, onmouseout onmouseover="this.style.background='orange'; this.style.color = 'blue';" onmouseout=" this.innerText='and my text and position too!'; this.style.position='absolute'; this.style.left='100px’; this.style.top='150px'; this.style.borderStyle='ridge'; this.style.borderColor='blue'; this.style.fontSize='24pt';"> I can change my colour... </div> </body > JavaScript is event-based UiEvents: These event objects iherits the properties of the UiEvent: • The FocusEvent • The InputEvent • The KeyboardEvent • The MouseEvent • The TouchEvent • The WheelEvent See https://www.w3schools.com/jsref/obj_uievent.asp Test and Gym JAVASCRIPT HTML HEAD HTML BODY CSS https://www.jdoodle.com/html-css-javascript-online-editor/ Javascript and the DOM 2- Introduction to the language 8 Introduzione alla programmazione web – Marco Ronchetti 2020 – Università di Trento JavaScript History • JavaScript was born as Mocha, then “LiveScript” at the beginning of the 94’s.
    [Show full text]
  • The Elinks Manual the Elinks Manual Table of Contents Preface
    The ELinks Manual The ELinks Manual Table of Contents Preface.......................................................................................................................................................ix 1. Getting ELinks up and running...........................................................................................................1 1.1. Building and Installing ELinks...................................................................................................1 1.2. Requirements..............................................................................................................................1 1.3. Recommended Libraries and Programs......................................................................................1 1.4. Further reading............................................................................................................................2 1.5. Tips to obtain a very small static elinks binary...........................................................................2 1.6. ECMAScript support?!...............................................................................................................4 1.6.1. Ok, so how to get the ECMAScript support working?...................................................4 1.6.2. The ECMAScript support is buggy! Shall I blame Mozilla people?..............................6 1.6.3. Now, I would still like NJS or a new JS engine from scratch. .....................................6 1.7. Feature configuration file (features.conf).............................................................................7
    [Show full text]
  • The American Short Story: from Poe to O. Henry. a Hypercard Application
    DOCUMENT RESUME ED 330 315 IR 014 934 AUTHOR May, Charles TITLE The American Short Story: From Poe to 0. Henry. A HyperCard Application. INSTITUTION California State Univ., Long Beach. English Dept. PUB DATE 90 NOTE 38p.; Supported by the 1989-90 Dissemination Grant from the California State University Lottery Revenue Program for Instructional Development and Technology. PUB TYPE Guides - Non-Classroom Use (055) EDRS PRICE MF01/PCO2 Plus Postage. DESCRIPTORS Authoring Aids (Programing); *Computer Assisted Instruction; Computer Software Development; Elementary Secondary Education; English Instruction; English Literature; Higher Education; *Hypermedia; Short Stories IDENTIFIERS Apple Macintosh ABSTRACT This report describes a computer-assisted instructional application created on a Macintosh computer using HyperCard software. The iL3tructional program is aimed at those who teach college-level English education courses and those whoare planning a course on the use of technology in the English classroom. It is noted that the HyperCard software was developed to aid in teaching English literature, specifically short stories, and provides access not only to the text of the short story, but also to concepts and patterns throughout the story. The rationale behind using the Macintosh computer, the concept of hypermedia and hypertext and, in particular, the use of HyperCard on the Macintosh, are discussed. Also described is the theory of short story analysis that underlies the computer application. The report concludes with a detailed discussion of programming using the HyperCard software, and suggests a method for creating unique applications to meet the needs of individual classroomE. (DB) *********************************************************************** * Reproductions supplied by EDRS are the best that can be made * * from the original document.
    [Show full text]
  • Hypertalk: the Language for the Rest of Us
    HyperTalk: The Language for the Rest of Us Kyle Wheeler January 18, 2004 Contents 1 Introduction 1 Introduction 1 There is, perhaps, no piece of software written by Ap- ple Computer, Inc. more prone to generating extreme 2 History 1 emotions in its users than its operating system. Next 2.1 TheBirth ................ 1 below that, however, is HyperCard. Designed and re- 2.2 TheLife................. 2 leased in 1987 by Bill Atkinson [7], HyperCard was an 2.3 TheDeath................ 2 instant success. Leveraging the power and simplicity 2.4 TheLegend ............... 2 of its scripting language, HyperTalk, designed by Bill Atkinson and by Dan Winkler [1], HyperCard demys- 3 Goals 2 tified the art of creating software. The language has a grammar and syntax similar to English, and as such ap- 4 Syntax Semantics 3 pealed to computer hobbyists, teachers, and the uniniti- 4.1 Implementation Notes . 3 ated alike. The commands HyperTalk uses are similar to 4.2 Objects ................. 3 those used by the Macintosh Toolbox, the base-level API 4.3 Messages ................ 4 of Apple’s Macintosh operating system, and the logical 4.4 Handlers................. 4 structure is similar to Pascal and organized in an event- 5 Bibliography 4 driven manner [8]. A BNF 6 A.1 Scripts.................. 6 2 History A.2 Expressions ............... 6 A.3 Ordinals and Positions . 7 2.1 The Birth A.4 Chunks and Containers . 7 HyperTalk was born as the core scripting language of A.5 Objects ................. 7 the HyperCard application, developed by Bill Atkinson1 A.6 Commands . 8 for Apple Computer, Inc. in 1987 under the condition A.6.1 Command Nonterminals .
    [Show full text]
  • Errata: Response Analysis and Error Diagnosis Tools. INSTITUTION Illinois Univ., Urbana
    DOCUMENT RESUME ED 383 202 FL 023 001 AUTHOR Hart, Robert S. TITLE Errata: Response Analysis and Error Diagnosis Tools. INSTITUTION Illinois Univ., Urbana. Language Learning Lab. REPORT NO LLL-TR-T-23-94 PUB DATE Dec 94 NOTE 114p. PUB TYPE Guides Non-Classroom Use (055) EDRS PRICE MF01/PC05 Plus Postage. DESCRIPTORS Authorir, Aids (Programming); Comparative Analysis; *Computer Software; Data Processing; Discourse Analysis; *Error Analysis (Language); Error Patterns; *Hypermedia; *Item Analysis; Programming IDENTIFIERS *ERRATA (Hyper Card) ABSTRACT This guide to ERRATA, a set of HyperCard-based tools for response analysis and error diagnosis in language testing, is intended as a user manual and general reference and designed to be used with the software (not included here). It has three parts. The first is a brief survey of computational techniques available for dealing with student test responses, including: editing markup that identifies spelling, capitalization, and accent errors and extra, missing, or out-of-order words; pattern matching for rapid identification of specific grammatical errors, keyword searches, and easy specification of alternate answers; and error-tolerant parsing, which puts error diagnosis under control of a grammar and dictionary of the target language. The second section is a user's manual and tutorial guide, describing ERRATA and offering examples of its use. Section three is a reference manual useful to anyone with unusual analysis requirements or wanting to tailor-make responses analyses. Installation and technical information is also included, and complete program code is appended.(MSE) *********************************************************************** * Reproductions supplied by EDRS are the best that can be made from the original document.
    [Show full text]
  • Introduction to Javascript
    Introduction to JavaScript Lecture 6 CGS 3066 Fall 2016 October 6, 2016 JavaScript I Dynamic programming language. Program the behavior of web pages. I Client-side scripts to interact with the user. I Communicates asynchronously and alters document content. I Used with Node.js in server side scripting, game development, mobile applications, etc. I Has thousands of libraries that can be used to carry out various tasks. JavaScript is NOT Java I Names can be deceiving. I Java is a full-fledged object-oriented programming language. I Java is popular for developing large-scale distributed enterprise applications and web applications. I JavaScript is a browser-based scripting language developed by Netscape and implemented in all major browsers. I JavaScript is executed by the browsers on the client side. JavaScript and other languages JavaScript borrows the elements from a variety of languages. I Object orientation from Java. I Syntax from C. I Semantics from Self and Scheme. Whats a script? I A program written for a special runtime environment. I Interpreted (as opposed to compiled). I Used to automate tasks. I Operates at very high levels of abstraction. Whats JavaScript? I Developed at Netscape to perform client side validation. I Adopted by Microsoft in IE 3.0 (1996). I Standardized in 1996. Current standard is ECMAScript 6 (2016). I Specifications for ECMAScript 2016 are out. I CommonJS used for development outside the browser. JavaScript uses I JavaScript has an insanely large API and library. I It is possible to do almost anything with JavaScript. I Write small scripts/apps for your webpage.
    [Show full text]
  • NINETEENTH PLENARY MEETING of ISO/IEC JTC 1/SC 22 London, United Kingdom September 19-22, 2006 [20060918/22] Version 1, April 17, 2006 1
    NINETEENTH PLENARY MEETING OF ISO/IEC JTC 1/SC 22 London, United Kingdom September 19-22, 2006 [20060918/22] Version 1, April 17, 2006 1. OPENING OF PLENARY MEETING (9:00 hours, Tuesday, September 19) 2. CHAIRMAN'S REMARKS 3. ROLL CALL OF DELEGATES 4. APPOINTMENT OF DRAFTING COMMITTEE 5. ADOPTION OF THE AGENDA 6. REPORT OF THE SECRETARY 6.1 SC 22 Project Information 6.2 Proposals for New Work Items within SC 22 6.3 Outstanding Actions From the Eighteenth Plenary of SC 22 Page 1 of 7 JTC 1 SC 22, 2005 Version 1, April 14, 2006 6.4 Transition to ISO Livelink 6.4.1 SC 22 Transition 7. ACTIVITY REPORTS 7.1 National Body Reports 7.2 External Liaison Reports 7.2.1 ECMA International (Rex Jaeschke) 7.2.2 Free Standards Group (Nick Stoughton) 7.2.2 Austin Joint Working Group (Nick Stoughton) 7.3 Internal Liaison Reports 7.3.1 Liaison Officers from JTC 1/SC 2 (Mike Ksar) 7.3.2 Liaison Officer from JTC 1/SC 7 (J. Moore) Page 2 of 7 JTC 1 SC 22, 2005 Version 1, April 14, 2006 7.3.3 Liaison Officer from ISO/TC 37 (Keld Simonsen) 7.3.5 Liaison Officer from JTC 1 SC 32 (Frank Farance) 7.4 Reports from SC 22 Subgroups 7.4.1 Other Working Group Vulnerabilities (Jim Moore) 7.4.2 SC 22 Advisory Group for POSIX (Stephen Walli) 7.5 Reports from JTC 1 Subgroups 7.5.1 JTC 1 Vocabulary (John Hill) 7.5.2 JTC 1 Ad Hoc Directives (John Hill) 8.
    [Show full text]
  • Hyper Talk Tutorial Modules Kevin G. Christmas Master of Education
    HYPERTALK TUTORIAL MODULES KEVIN G. CHRISTMAS B.Ed., University of Lethbridge, 1986 A One-Credit Project Submitted to the Faculty of Education of The University of Lethbridge in Partial FulfIllment of the Requirements for the Degree MASTER OF EDUCATION LETHBRIDGE,ALBERTA June, 1993 TABLE OF CONTENTS PAGE I. INTRODUCTION ........................................................................... 1 II. UNIT OUTLINE............................................................................ 1 Lesson #1 .................................................................................... 2 Lesson #2 ..................................................................................... 3 Lesson #3 ..................................................................................... 3 Lesson #4 ..................................................................................... 3 Lesson #5 ..................................................................................... 4 Lesson #6 ..................................................................................... 4 Lesson #7 ..................................................................................... 5 Lesson #8 ..................................................................................... 5 Lesson #9 ..................................................................................... 6 Lesson #10 ................................................................................... 6 Lesson #11 - #20 .........................................................................
    [Show full text]
  • Proposal to Refocus TC39-TG1 on the Maintenance of the Ecmascript, 3 Edition Specification
    Proposal to Refocus TC39-TG1 On the Maintenance of the ECMAScript, 3rd Edition Specification Submitted by: Yahoo! Inc. Microsoft Corporation Douglas Crockford Pratap Lakshman & Allen Wirfs-Brock Preface We believe that the specification currently under development by TC39-TG1 as ECMAScript 4 is such a radical departure from the current standard that it is essentially a new language. It is as different from ECMAScript 3rd Edition as C++ is from C. Such a drastic change is not appropriate for a revision of a widely used standardized language and cannot be justified in light of the current broad adoption of ECMAScript 3rd Edition for AJAX style web applications. We do not believe that consensus can be reach within TC39-TG1 based upon its current language design work. However, we do believe that an alternative way forward can be found and submit this proposal as a possible path to resolution. Proposal We propose that the work of TC39-TG1 be reconstituted as two (or possibly three) new TC39 work items as follows: Work item 1 – On going maintenance of ECMAScript, 3rd Edition. In light on the broad adoption of ECMAScript, 3rd Edition for web browser based applications it is clear that this language will remain an important part of the world-wide-web infrastructure for the foreseeable future. However, since the publication of the ECMAScript, 3rd Edition specification in 1999 there has been feature drift between implementations and cross-implementation compatibility issues arising from deficiencies and ambiguities in the specification. The purpose of this work item is to create a maintenance revision of the specification (a 4th Edition) that focuses on these goals: Improve implementation conformance by rewriting the specification to improve its rigor and clarity, and by correcting known points of ambiguity or under specification.
    [Show full text]
  • International Standard Iso/Iec 9075-2
    This is a previewINTERNATIONAL - click here to buy the full publication ISO/IEC STANDARD 9075-2 Fifth edition 2016-12-15 Information technology — Database languages — SQL — Part 2: Foundation (SQL/Foundation) Technologies de l’information — Langages de base de données — SQL — Partie 2: Fondations (SQL/Fondations) Reference number ISO/IEC 9075-2:2016(E) © ISO/IEC 2016 ISO/IEC 9075-2:2016(E) This is a preview - click here to buy the full publication COPYRIGHT PROTECTED DOCUMENT © ISO/IEC 2016, Published in Switzerland All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form orthe by requester. any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of Ch. de Blandonnet 8 • CP 401 ISOCH-1214 copyright Vernier, office Geneva, Switzerland Tel. +41 22 749 01 11 Fax +41 22 749 09 47 www.iso.org [email protected] ii © ISO/IEC 2016 – All rights reserved This is a preview - click here to buy the full publication ISO/IEC 9075-2:2016(E) Contents Page Foreword..................................................................................... xxi Introduction.................................................................................. xxii 1 Scope.................................................................................... 1 2 Normative references.....................................................................
    [Show full text]
  • Proof/Épreuve
    0- W e8 IE -2 V 07 E a3 ) 4 R i 68 P .a /5 -1 D h st 7 e si 75 R it s/ 1 A s. : d -2 rd r rf D rd a da p N a d n o- A d an ta is t /s c/ T n l s g 5 S ta l lo 8 s u a cc eh ( F at 0 /c fa iT ai c INTERNATIONAL . b0 eh a it - s. 43 STANDARD rd a9 a 1- nd f a 4b st // s: tp ht Document management for PDF — 21757-1 Part 1: Use of ISO 32000-2 (PDF 2.0) ISO First edition — ECMAScript PROOF/ÉPREUVE ISO 21757-1:2020(E)Reference number © ISO 2020 ISO 21757-1:2020(E) 0- W e8 IE -2 V 07 E a3 ) 4 R i 68 P .a /5 -1 D h st 7 e si 75 R it s/ 1 A s. : d -2 rd r rf D rd a da p N a d n o- A d an ta is t /s c/ T n l s g 5 S ta l lo 8 s u a cc eh ( F at 0 /c fa iT ai c . b0 eh a it - s. 43 rd a9 a 1- nd f a 4b st // s: tp ht © ISO 2020 All rights reserved. UnlessCOPYRIGHT otherwise specified, PROTECTED or required inDOCUMENT the context of its implementation, no part of this publication may be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission.
    [Show full text]
  • Problem Solving and Communication in a Hypercard Environment
    Problem Solving and Communication in a HyperCard Environment Dave Moursund and Sharon Yoder About the Authors Dr. David Moursund has been teaching and writing in the field of computers in education since 1963. He is a professor in the College of Education at the University of Oregon. Dr. Moursund has authored or coauthored more than 25 books and numerous articles on computers and education. He was the chairman of the department of computer science at the University of Oregon from 1969 to 1975. In 1979 he founded the International Council for Computers in Education (ICCE), which became the International Society for Technology in Education (ISTE) in 1989 when it merged with the International Association for Computing in Education. Dr. Moursund is currently the executive officer of ISTE. Dr. Sharon Yoder taught mathematics and computer science at the junior high and high school level for 15 years. Her most recent public school experience was as a secondary computer science teacher and a computer coordinator involved in developing system- wide computer curriculum and in planning teacher inservice training. In addition, she has taught mathematics, computer science, and computer education at a number of universities in northeastern Ohio, including Kent State University, the University of Akron, and Cleveland State University. She currently teaches computer education courses at the University of Oregon. For the past several years, Dr. Yoder has conducted workshops and presented papers at national conferences. She has been involved in a number of book-publishing projects, including the Nudges series, An Introduction to Programming in Logo Using LogoWriter, and An Introduction to Programming in Logo Using Logo PLUS.
    [Show full text]