Snap!

Snap!语言

编程范型| 面向对象编程, 事件驱动编程
設計者| 布萊恩·哈維和Jens Mönig
實作者| Jens Mönig
发行时间| 2011年
当前版本|

* 10.0.11（2024年9月19日；穩定版本）[1]

型態系統| 动态类型
實作語言| JavaScript
許可證| AGPL
文件扩展名| .xml
網站| snap.berkeley.edu/ byob.berkeley.edu/
啟發語言
Scratch语言

Snap! 是一款用JavaScript编写的，在浏览器裡运行的图形化编程语言，旨在赋予学生创作交互式故事，动画，游戏等作品，学习数学和计算概念。Snap!由Scratch语言衍生，包含和扩展了Scratch的功能。

Snap! 不用在本地设备上安装任何部件，只需网络浏览器即可。

## 历史

[编辑]

Snap! 4.0和前身BYOB（页面存档备份，存于互联网档案馆）由来自加州伯克利大学的Jens Mönig开发，可以运行在Windows、Mac OS X或Linux系统[3][4]；布莱恩·哈维提供创意和文档[5]。[6][7] 。加州伯克利大学在面向非计算机专业学生的名为“计算的美和乐趣”的课程上使用Snap!。[8]

## 运行平台

[编辑]

Snap! 4.0 可运行在Apple iOS、Mac OS X、Windows和Linux 上，用Javascript编写，使用HTML5 Canvas API令其具有良好的跨平台性。

对比之下，Scratch 2.0用ActionScript编写，不能在苹果公司的iOS系统上运行。

## 用户界面

[编辑]

Snap 4.0 开发环境

屏幕布局和Scratch2.0之前的版本一致。部件区域在左面，代码区域在中间，右上部是运行区域，右下部罗列动画人物缩微。

## 特性

[编辑]

区别于Scratch的最重要的特性为：

* 高阶函数，数学上称为"Λ演算"
* 嵌套列表，例如列表的列表
* 角色嵌套
* Snap!代码可转换为其他主流程序语言，如Python, JavaScript和C等.

## 参考

[编辑]

1. ^ Release 10.0.11. 2024年9月19日  [2024年9月26日].
2. ^ jmoenig/Snap. GitHub.  [3 January 2022]. （原始内容存档于2022-04-21）.
3. ^ Scratch - Imagine, Program, Share. scratch.mit.edu.  [21 May 2017]. （原始内容存档于2014-02-18）.
4. ^ Mönig's blog post announcing BYOB as bringing protypal inheritance to Scratch.  [2015-03-27]. （原始内容存档于2013-12-06）.
5. ^ HomePage for Brian Harvey (bh@cs.Berkeley.EDU). people.eecs.berkeley.edu/~bh/.  [19 January 2019]. （原始内容存档于2019-04-03）.
6. ^ Brian Harvey user contributions page.  [2015-03-27]. （原始内容存档于2014-02-16）.
7. ^ Brian Harvey's homepage.  [2015-03-27]. （原始内容存档于2014-01-23）.
8. ^ The Beauty and Joy of Computing course homepage.  [2015-03-27]. （原始内容存档于2014-01-23）.

## 外部链接

[编辑]

* 官方网站
* source code（页面存档备份，存于互联网档案馆）
* CNET Download.com and CNET TechTracker's BYOB for Mac（页面存档备份，存于互联网档案馆） download page
* CNET Download.com and CNET TechTracker's BYOB for Windows（页面存档备份，存于互联网档案馆） download page

* 查
* 论
* 编

编程语言

范型|

| 过程式|

* FORTRAN
* COBOL
* JOVIAL
* ALGOL 60
* JOSS（英语：JOSS）
* BASIC
* PL/I
* MUMPS（英语：MUMPS）
* ALGOL 68
* Forth
* Pascal
* Turbo Pascal
* C
* Modula-2
* Ada 83
* occam
* Oberon
* Go
* Ballerina（英语：Ballerina (programming language)）

|

面向对象|

* Simula 67
* Smalltalk
* Objective-C
* Eiffel
* Object Pascal
* Delphi
* Self
* Visual Basic
* Gambas
* Ada 95
* Java
* C#
* Vala
* Crystal（英语：Crystal (programming language)）

多范型|

* C++
* Modula-3
* Dylan
* Python
* Lua
* JavaScript
* Ruby
* D
* Factor
* Scala
* F#
* Haxe
* Nim
* Chapel（英语：Chapel (programming language)）
* Rust
* Kotlin
* Dart
* Swift
* Zig
* Ring（英语：Ring (programming language)）
* V（英语：V (programming language)）
* Mojo
* Carbon

函数式|

* LISP
* Scheme
* Common Lisp
* Clojure
* Logo
* APL/J
* ML
* Standard ML
* OCaml
* Erlang
* Elixir
* Haskell
* SAC
* Agda
* Idris
* jq（英语：jq (programming language)）
* Gleam（英语：Gleam (programming language)）

逻辑式|

* Prolog
* Datalog
* Mercury
* AnsProlog
* ProbLog（英语：ProbLog）

脚本语言|

| 动态语言|

* SNOBOL
* Icon
* REXX
* Perl
* Raku
* Tcl/Tk
* CLOS
* newLISP
* Python
* Lua
* Ruby
* PHP
* Hack
* CFML（英语：ColdFusion Markup Language）
* REBOL
* Red（英语：Red (programming language)）
* Io
* Julia

|

Shell语言|

* Unix shell
* sh/ash
* csh/tcsh
* ksh
* bash
* zsh
* rc（英语：rc (Unix shell)）
* sed
* AWK
* PowerShell

ECMA-262|

* ECMAScript
* JavaScript
* TypeScript
* CoffeeScript/LiveScript（英语：LiveScript (programming language)）
* Elm
* PureScript
* Reason
* Bosque（英语：Bosque (programming language)）

特定平台|

| .NET|

* C#
* C++/CLI
* F#
* PowerShell
* VB.NET
* Small Basic

|

JVM|

* Java
* AspectJ（英语：AspectJ）
* Scala
* Clojure
* Groovy
* Kotlin

特定领域|

| 科学计算|

* Speakeasy（英语：Speakeasy (computational environment)）
* IDL
* GDL
* Maxima
* Maple
* MATLAB
* Octave
* Scilab
* Wolfram
* R
* Yorick（英语：Yorick (programming language)）
* SageMath
* Julia

|

GPU计算|

* Cg/HLSL
* GLSL
* Brook（英语：BrookGPU）
* OpenCL
* SYCL
* CUDA/PTX（英语：Parallel Thread Execution）
* Futhark
* SPIR-V（英语：Standard Portable Intermediate Representation）

数据查询|

* CODASYL（英语：CODASYL）
* SQL
* PL/SQL
* T-SQL
* SQL/PSM（英语：SQL/PSM）
* xBase（英语：xBase）
* XPath
* XQuery（英语：XQuery）
* GraphQL

可视化|

* Prograph（英语：Prograph）
* Simulink
* LabVIEW
* Orange（英语：Orange (software)）
* KNIME（英语：KNIME）
* Scratch
* Snap!
* App Inventor
* Flowgorithm（英语：Flowgorithm）
* Power Fx

传媒设计|

* SuperCollider
* Pure Data
* AviSynth
* Processing
* ChucK

其它|

* 汇编语言
* APT（英语：APT (programming language)）
* GPSS（英语：GPSS）
* AMPL
* dc
* yacc
* make
* PostScript
* XSLT
* LLVM IR
* WebAssembly
* 深奥的编程语言

* 目录
* 列表
* 历史
* 比较（英语：Comparison of programming languages）
* 时间线（英语：Timeline of programming languages）

*[查]: 查看该模板
*[论]: 讨论该模板
*[编]: 编辑该模板