1 / 13

Social and Ethical Issues in Programming Language Design

Social and Ethical Issues in Programming Language Design. Can harm be done by designers of programming languages? Support for system safety in P.L. Security policies. Who gets to program? Should languages be easy to learn or easy to use?

ahava
Télécharger la présentation

Social and Ethical Issues in Programming Language Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Social and Ethical Issues in Programming Language Design • Can harm be done by designers of programming languages? • Support for system safety in P.L. • Security policies. • Who gets to program? • Should languages be easy to learn or easy to use? • Is there a right to literacy in programming? (to read programs? to write programs?) • What part do programming languages play in ethical and unethical uses of technology? CSE 341 S. Tanimoto Social/Ethical Issues -

  2. Can harm be done by designers of programming languages? • Direct harm ? • Indirect harm ? CSE 341 S. Tanimoto Social/Ethical Issues -

  3. Software Can Kill:The Yakima Software Bug • “On Saturday, January 17, 1987, the second patient of the day was to be treated for a carcinoma. This patient was to receive two film verification exposures of 4 and 3 rads plus a 79 rad photon treatment (for a total exposure of 86 rads)... The console displayed ‘beam ready,’ and the operator hit the B key to turn the beam on... the patient...reported ‘feeling a burning sensation’ in his chest. Later in the day, the patient developed a skin burn over the entire treatment area...The patient died in April from complications related to the overdose.” [from N. Leveson: Safeware, pp54-1542]. CSE 341 S. Tanimoto Social/Ethical Issues -

  4. The Yakima Software Bug (cont) • “The software problem ... is fairly well established. ...Every pass through the Set Up Test routine ...increments... a shared variable called Class3. If Class3 is nonzero, there is an inconsistency and treatment should not proceed. A zero value for Class3 indicates that the relevant parameters are consistent with treatment and the software does not inhibit the beam.” • Problem: Class3 was a 1-byte variable. Adding 1 to 255 produced 0. • Being treated with the Therac-25 radiation treatment machine was a bit like playing Russian roulette. CSE 341 S. Tanimoto Social/Ethical Issues -

  5. Who is responsible for damage caused by bugs in a program? • (a) the user • (b) the author of the program • (c) the compiler writer • (d) the designer of the programming language • the patient? the hospital? the manufacturing company? the software designer? coder? tester? CSE 341 S. Tanimoto Social/Ethical Issues -

  6. Emergent Language Properties That Relate to Human Errors • Masterability • Fault proneness • understandability • maintainability • checkability • [J. J. Horning: Programming languages for reliable computing systems, 1979]. CSE 341 S. Tanimoto Social/Ethical Issues -

  7. Language Features Found to be Prone to Error: • pointers • control transfers of various kinds • defaults • implicit type conversions • global variables • Overloading variable names CSE 341 S. Tanimoto Social/Ethical Issues -

  8. Defensive Programming • Design thoroughly • Design for testability • Design for safety by identifying, preventing, and checking for dangerous conditions • Design test methods into the system • Test during development • Keep a log of testing activities • Maintain testing tools as well as product code CSE 341 S. Tanimoto Social/Ethical Issues -

  9. Is There a Right to Program? • Literacy as a human right in the 21st century • Computer literacy ... • What forms of programming should be accessible? CSE 341 S. Tanimoto Social/Ethical Issues -

  10. Learning to Program • Several important programming languages developed from efforts to make programming easier to learn. • Logo: Lisp-like, interpreted language + turtle graphics • BASIC -- developed by Kurtz and Kemeny at Dartmouth Univ. to help undergraduates learn about computing. • Karel the Robot (a pre-Pascal teaching tool by Richard Pattis) • Smalltalk -- envisioned by Alan Kay as a programming language for kids. • Visual-rule based simulations (KidSim, Stagecast Creator, AgentBuilder, Visual AgenTalk) • Color XFORM (Image processing system) + scripting language (e.g., Lisp) -- a visual & symbolic approach at U of Wash. CSE 341 S. Tanimoto Social/Ethical Issues -

  11. Is Language Learnability Important from an Ethical Standpoint? • Some professions create barriers to entry. Should programmers or language designers ever do this? • If they do, is it ethical to do it by making languages difficult to learn? • Software written so that no one but the author can maintain it can pose a risk for those who depend on the software being up to date. CSE 341 S. Tanimoto Social/Ethical Issues -

  12. “Religious” Attitudes in Programming • Should programmers be dogmatic about language features or philosphies? • Can a programmer be pluralistic about language and still hold strong convictions? • How should programmers respect the tradeoffs between idealism and practicality in the choice and uses of programming languages? CSE 341 S. Tanimoto Social/Ethical Issues -

  13. Using Computer-Based Languages for Human Communication • Social issues in language design • Cultural biases • Limited ontologies • Visual vs non-visual (symbolic) • Interface biases CSE 341 S. Tanimoto Social/Ethical Issues -

More Related