Factor

Factor 编程语言。「Factor programming language」

Github星跟踪图

Factor

Factor is a concatenative, stack-based
programming language with high-level
features

including dynamic types, extensible syntax, macros, and garbage collection.
On a practical side, Factor has a full-featured
library
,
supports many different platforms, and has been extensively documented.

The implementation is fully
compiled

for performance, while still supporting interactive
development
.
Factor applications are portable between all common platforms. Factor can
deploy stand-alone
applications
on all
platforms. Full source code for the Factor project is available under a BSD
license.

Getting Started

Building Factor from source

If you have a build environment set up, then you can build Factor from git.
These scripts will attempt to compile the Factor binary and bootstrap from
a boot image stored on factorcode.org.

To check out Factor:

  • git clone git://factorcode.org/git/factor.git
  • cd factor

To build the latest complete Factor system from git, either use the
build script:

  • Unix: ./build.sh update
  • Windows: build.cmd

or download the correct boot image for your system from
http://downloads.factorcode.org/images/master/, put it in the factor
directory and run:

  • Unix: make and then ./factor -i=boot.unix-x86.64.image
  • Windows: nmake /f Nmakefile x86-64 and then factor.com -i=boot.windows-x86.64.image

Now you should have a complete Factor system ready to run.

More information on building factor
and system requirements.

To run a Factor binary:

You can download a Factor binary from the grid on https://factorcode.org.
The nightly builds are usually a better experience than the point releases.

  • Windows: Double-click factor.exe, or run .\factor.com in a command prompt
  • Mac OS X: Double-click Factor.app or run open Factor.app in a Terminal
  • Unix: Run ./factor in a shell

Learning Factor

A tutorial is available that can be accessed from the Factor environment:

"first-program" help

Some other simple things you can try in the listener:

"Hello, world" print

{ 4 8 15 16 23 42 } [ 2 * ] map .

1000 [1,b] sum .

4 <iota> [
    "Happy Birthday " write
    2 = "dear NAME" "to You" ? print
] each

For more tips, see Learning Factor.

Documentation

The Factor environment includes extensive reference documentation and a
short "cookbook" to help you get started. The best way to read the
documentation is in the UI; press F1 in the UI listener to open the help
browser tool. You can also browse the documentation
online
.

Command Line Usage

Factor supports a number of command line switches:

Usage: factor [Factor arguments] [script] [script arguments]

Common arguments:
    -help            print this message and exit
    -i=<image>       load Factor image file <image> (default factor.image)
    -run=<vocab>     run the MAIN: entry point of <vocab>
        -run=listener    run terminal listener
        -run=ui.tools    run Factor development UI
    -e=<code>        evaluate <code>
    -no-user-init    suppress loading of .factor-rc
    -roots=<paths>   a list of path-delimited extra vocab roots

Enter
    "command-line" help
from within Factor for more information.

You can also write scripts that can be run from the terminal, by putting
#!/path/to/factor at the top of your scripts and making them executable.

Source Organization

The Factor source tree is organized as follows:

  • vm/ - Factor VM source code (not present in binary packages)
  • core/ - Factor core library
  • basis/ - Factor basis library, compiler, tools
  • extra/ - more libraries and applications
  • misc/ - editor modes, icons, etc
  • unmaintained/ - now at factor-unmaintained

Community

Factor developers meet in the #concatenative channel on
irc.freenode.net. Drop by if you want to discuss
anything related to Factor or language design in general.

Have fun!

主要指标

概览
名称与所有者factor/factor
主编程语言Factor
编程语言Emacs Lisp (语言数: 20)
平台
许可证BSD 2-Clause "Simplified" License
所有者活动
创建于2009-03-24 13:17:48
推送于2025-07-10 04:27:00
最后一次提交2025-07-09 21:26:54
发布数121
最新版本名称0.100 (发布于 )
第一版名称importing-0-60 (发布于 )
用户参与
星数1.7k
关注者数74
派生数215
提交数36.6k
已启用问题?
问题数2139
打开的问题数697
拉请求数348
打开的拉请求数19
关闭的拉请求数592
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?