Download presentation
Presentation is loading. Please wait.
Published byCoral Lane Modified over 6 years ago
1
Social and Ethical Issues in Programming Language Design
Safety: Can harm be done by designers of programming languages? Support for system safety in P.L. Security policies. Literacy: 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?) Other: What part do programming languages play in ethical and unethical uses of technology? CSE S. Tanimoto Social & Ethical Issues
2
Can harm be done by designers of programming languages?
Direct harm ? Indirect harm ? CSE 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, pp ]. CSE 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 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 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 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 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 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 S. Tanimoto Social & Ethical Issues
10
CSE 341 -- S. Tanimoto Social & Ethical Issues
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 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 S. Tanimoto Social & Ethical Issues
12
One vs Many Attitudes in Programming Languages
Should programmers be dogmatic about language features or philosophies? 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 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 S. Tanimoto Social & Ethical Issues
14
CSE 341 -- S. Tanimoto Social & Ethical Issues
What part do programming languages play in ethical and unethical uses of technology? Can a language itself encourage ethical behavior? Can a language itself encourage unethical behavior? Can you imagine language constructs that would support ethical computing? CSE S. Tanimoto Social & Ethical Issues
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.