Red语言入门(1)—— 第一个Red程序

原创 2015年03月16日 09:48:24

几乎所有的编程教程都以一个小例子开始。其目的是让读者准备好开发环境,熟悉编译工具的使用。我们也按照传统,从这最基本的一步开始吧!

不同于大多数编程语言的第一个Hello World程序,我们来做些更有意思事。程序 demo.red 如下:

Red [
    Title:  "Red alpha simple ASCII art demo"
    Author: "Nenad Rakocevic"
    File:   %demo.red
    Tabs:   4
    Rights: "Copyright (C) 2012 Nenad Rakocevic. All rights reserved."
    License: {
        Distributed under the Boost Software License, Version 1.0.
        See https://github.com/dockimbel/Red/blob/master/BSL-License.txt
    }
]

data: [
    [0 7 20]
    [2 2 6 7 20]
    [1 2 6 7 20]
    [0 2 6 7 10 14 17 20 20]
    [2 2 6 7 9 10 13 14 16 17 19]
    [1 7 9 10 13 14 16 17 20]
    [0 2 4 5 9 14 16 17 20]
    [2 2 5 6 9 10 16 17 20]
    [1 2 5 6 9 10 13 14 16 17 19]
    [0 2 6 7 10 14 17 20 20]
]

pattern: "Red"
prin newline

foreach line data [
    cursor: 1 + line/1
    line: next line
    gap-start: line/1
    gap-end: line/2
    prin tab
    prin tab
    
    repeat i 21 [
        prin either all [
            gap-start <= i
            i <= gap-end
        ][
            #" "
        ][
            pattern/:cursor
        ]
        if i > gap-end [
            unless tail? line: skip line 2 [
                gap-start: line/1
                gap-end: line/2
            ]
        ]
        
        cursor: cursor + 1
        if cursor = 4 [cursor: 1]
    ]
    prin newline
]
程序有点长,但是没关系,现在我们不需要理解它,我们的目的是学会如何运行这段代码。

首先,下载Red工具链。相对于其他的编程语言动辄上百MB的工具链,Red显得太过苗条,甚至让人怀疑它的能力。你能想象一个不到1MB的工具,包含了两个编译器(Red和Red/System),一个解释器(Red)吗?真可谓是麻雀虽小,五脏俱全。

官方下载地址:http://red.github.io

接着,以Windows平台为例进行操作:

1. 打开CMD,解释执行:

E:\>red-051.exe demo.red

                RedRed              d
                d     d             e
                e     e             R
                R     R   edR    dR d
                d     d  d   R  R  Re
                edRedR   e   d  d   R
                R   e    RedR   e   d
                d    e   d      R   e
                e    R   e   d  d  dR
                R     R   edR    dR d

E:\>
2. 编译后运行。解释执行很方便,缺点是程序运行速度,并且需要有Red解释器才可以运行程序。编译后,会生成一个独立的可执行文件,能够弥补前面说的缺陷。

E:\>red-051.exe -c demo.red

-=== Red Compiler 0.5.1 ===-

Compiling /E/demo.red ...
...compilation time : 241 ms

Compiling to native code...
...compilation time : 13256 ms
...linking time     : 189 ms
...output file size : 348672 bytes
...output file      : E:\demo.exe

E:\>demo.exe

                RedRed              d
                d     d             e
                e     e             R
                R     R   edR    dR d
                d     d  d   R  R  Re
                edRedR   e   d  d   R
                R   e    RedR   e   d
                d    e   d      R   e
                e    R   e   d  d  dR
                R     R   edR    dR d
3. 进入REPL环境。

E:\>red-051.exe

-=== Red Console alpha version ===-
Type HELP for starting information.

red>> 1 + 2
== 3
red>> print "你好"
你好
red>> quit

E:\>
好了,现在你已经基本学会了Red工具链的使用,就这么简单!:D

如果了解更多的命令行参数,可以执行:

E:\>red-051.exe -h
童鞋们可以根据帮助说明,尝试编译DLL,交叉编译(在windows上编译Linux或者Mac版本的程序)。在下一篇,我们将正式进入Red语言的学习。


版权声明:本文为博主原创文章,转载请注明出处。

相关文章推荐

Red语言入门(1)—— 为什么是Red?

要开始学习一门新的编程语言,总是禁不住问:为什么?这是个好问题。 下面先列举一些Red语言的特性,再尝试着做出回答。 跨平台,整个工具链小于10MB(包括Red Compiler, Red Inte...
  • qtxie
  • qtxie
  • 2015-03-16 09:47
  • 1633

Red语言入门(2)—— 代码结构和求值顺序

本文要介绍的是Red的代码结构和求值顺序。
  • qtxie
  • qtxie
  • 2015-03-16 09:58
  • 1171

OpenGL Programming Guide- Red Book 例子程序库 -系列- 3-Chapter 2Drawing Geometric Objects-Part1

Example 2-1 : Using Line Stipple Patterns: lines.c 原始程序

【计算机图形学】OpenGL入门1——第一个OpenGL程序

实验环境集成开发环境:vs or vc 工具包:GLUT步骤以VC6.0为例。 新建一个工程,选择Win32 Console Application,新建一个空的工程。 向该工程添加一个代码文件,取...

使用 Eclipse 创建第一个 Red5 应用程序示例 - 使用 Red5 在线录制视频

本文示例源代码下载地址         书接上回~《如何使用 Red5 插件创建 Red5 项目?》,接下来要做的当然是想看看自己在 Eclipse 开发的应用程序跑的效果。本文使用具体例子——使用 ...

BFS入门-Red and Black

Description There is a rectangular room, covered with square tiles. Each tile is colored either red...

Unix/Linux环境C编程入门教程(24) MySQL 5.7.4 for Red Hat Enterprise 7(RHEL7)的安装

如今MySQL的一个变化用户可能不会注意到,那就是甲骨文已经开始重新架构MySQL的代码,使它大量的模块化。如软件解析器,优化和复制功能以模块化的形式被重写。该版本的查询性能得以大幅提升,比 MySQ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)