Newsqueak
{{Short description|Programming language}}
{{distinguish|text=the Smalltalk derivatives Squeak or Newspeak}}
{{Infobox programming language
| name = Newsqueak
| logo =
| paradigm = Concurrent
| designer = Rob Pike
| developer = Bell Labs
| latest_release_version =
| latest_release_date =
| typing = Strong
| implementations =
| dialects =
| influenced = Alef, Go, Limbo, Odin,{{Cite web|url=https://odin-lang.org/docs/faq/#what-have-been-the-major-influences-in-the-languages-design|title=Frequently Asked Questions}} Rust{{Cite web |url=https://doc.rust-lang.org/reference/influences.html |title=Influences - The Rust Reference |website=The Rust Reference |access-date=2023-04-18}}
| operating_system =
| license =
| website =
}}
Newsqueak is a concurrent programming language for writing application software with interactive graphical user interfaces.
Newsqueak's syntax and semantics are influenced by the C language, but its approach to concurrency was inspired by C. A. R. Hoare's communicating sequential processes (CSP). However, in Newsqueak, channels are first-class objects, with dynamic process creation and dynamic channel creation.{{cite journal |first1=Rob |last1=Pike |year=1990 |title=The Implementation of Newsqueak |journal=Software: Practice and Experience |volume=20 |number=7 |pages=649–659 |doi=10.1002/spe.4380200703 |url=http://www.cs.tufts.edu/comp/250RTS/archive/rob-pike/impl-new-TR.pdf}}
Newsqueak was developed from an earlier, smaller, language, called Squeak (not to be confused with the Smalltalk implementation Squeak). It was developed by Luca Cardelli and Rob Pike at Bell Labs in the first half of the 1980s as a language for implementing graphical user interfaces. Both languages were presented as "a language for communicating with mice": their main aim was to model the concurrent nature of programs interacting with multiple input devices, viz., keyboards and mice.{{cite conference |title=Squeak: a language for communicating with mice |first1=Luca |last1=Cardelli |first2=Rob |last2=Pike |conference=ACM SIGGRAPH |year=1985 |url=http://ordiecole.com/squeak/cardelli_squeak1985.pdf}}{{cite tech report |title=Newsqueak: A Language for Communicating with Mice |first=Rob |last=Pike |institution=Bell Labs |number=Computing Science Technical Report No. 143 |year=1994|url=http://swtch.com/~rsc/thread/newsqueak.pdf}}
Newsqueak is an interpreted language. The name of the interpreter is squint. The UNIX port of squint is available under a FOSS license.{{cite web |url=https://seh.dev/go-legacy/ |title=Go's History in Code |last=Hinchee |first=Sean |date=2020 |website=seh.dev |access-date=October 25, 2021 |quote=}}
The ideas present in Newsqueak were further developed in the programming languages Alef, Limbo, and Go.
See also
References
{{reflist}}
External links
- [http://swtch.com/~rsc/thread/ Bell Labs and CSP Threads]
- [https://www.youtube.com/watch?v=hB05UFqOtFA Advanced Topics in Programming Languages: Concurrency/message passing Newsqueak]
{{Rob Pike navbox}}
Category:C programming language family
Category:Concurrent programming languages
{{Compu-lang-stub}}