首页 > 知识库 > 正文

Piet是什么语言 Piet历史来源详解

Piet 是一种非常深奥的编程语言,使用颜色编写代码。由David Morgan-Mar,其方案是位图,看起来像抽象艺术设计。编译指导图像周围移动,从一个连续颜色的区域下的一个“指针”。通过一个地区的指针退出时的程序进行。

特点

有20种颜色,指定哪些行为:18“彩色”的色彩,这是由6个步骤色调循环和3级亮度周期有序;和黑白没有下令。当退出“多彩”色,进入一个又一个,执行程序是由色调和亮度变化的步骤数。黑人不能进入;当指针试图进入一个黑色的区域,选择下一个块的规则,而不是改变。如果尝试了所有可能的规则,程序终止。黑色也被视为图像的边界以外的地区。白不执行操作,但允许指针,以“通过”。留给编译器的颜色比其他的20个指定的行为。

变量存储在内存在一个堆栈符号整数。该堆栈上最指定的程序与业务处理,输入/输出和别人的规则,编译的指针移动。

皮特被命名后的荷兰画家蒙德里安。原定的名称, 蒙德里安已被接受。  

介绍

Piet是一个看起来像在用抽象画编程的语言。这个语言被命名以Piet Mondrian,开创了现代抽象艺术领域的人物。我本来想叫这个语言叫Mondrian,但有人告诉我这个名字被一个平凡无聊的脚本语言使用了。喔,我想我们不能全部成为深奥语言作者。
  设计原则
  程序代码表现为抽象艺术的形式
  语言概念
  调色板

#FFC0C0
  light red
#FFFFC0
  light yellow
#C0FFC0
  light green
#C0FFFF
  light cyan
#C0C0FF
  light blue
#FFC0FF
  light magenta
#FF0000
  red
#FFFF00
  yellow
#00FF00
  green
#00FFFF
  cyan
#0000FF
  blue
#FF00FF
  magenta
#C00000
  dark red
#C0C000
  dark yellow
#00C000
  dark green
#00C0C0
  dark cyan
#0000C0
  dark blue
#C000C0
  dark magenta
#FFFFFF white #000000 black

有六种彩色,每种三种渐变形式。加上黑白共20种颜色。

色相渐变:red->yellow->green->cyan->blue->magenta->red
  亮度渐变:light->normal->dark->light
  注意light比dark更dark,反之亦然(这是计算差值方法的需要,如green比yellow dark 1,cyan 比 yellow dark 2 但yellow 比 cyan dark 4)。亮度规则也类似。
  白色黑色不纳入渐变规则。
  也可以使用20这种外的颜色,但这些颜色会被当做这20种颜色中的一种,具体是哪一种依赖具体实现。一般是白,也可能是黑。
  codel
  Piet代码是认可的颜色组成的图形。在语言中,每个单独的像素有其功能,所以编程中常将图形放大以方便的操作和观察每个一个像素。此时出现像素有两个意思,一个是一块很多像素组成的图形表示的原图的一个像素;另一个则是放大图的像素本身(元素一个像素放大图的众多像素之一)。术语codel指代前者,即原图的像素而不是显示的像素(虽然显示的像素有时候就是原图的像素)
  色块
  Piet的简单代码单位是色块。一个色块是一个由任意数量相邻的codel组成的形状,被其他颜色分隔。只是对角连接不算相邻。一个色块可以是任意形状,也可以有洞在里面,这个洞对有洞的色块本身没有任何影响。
  Stack
  Piet使用stack储存所有数据。数据只有整数,虽然这些整数可以被读取或以unicode之类的格式被合适的命令打印出来。
  程序执行
  Piet解释器由图形左上角的codel开始执行。解释器维护一个方向指针(DP),被初始化为向右。DP指针可以指向上下左右。解释器还维护一个codel选择器(CC),初始指向左。CC可以指向左或右。DP和CC指针常常改变程序的流程。
  解释器按照以下规则遍历色块:
  1.解释器按照DP指针所指的方向选择当前所在图形的在此方向最远的边(如对正方形DP指针向右,就是选择到正方向最右的一列codel)
  2.按照CC指针偏移的DP指针所指定的方向,选择到这个边在这个方向的最远的codel。(继承上述例子,若CC指针向左,则选择最右一列codel的最上的codel。因为向右的左是向上)
  3.选择了一个codel,这个codel的DP指针方向的前一个codel应该是另一个色块。将程序转移到这个新的色彩格,这将引发命令的执行等。
  (总之,你可以想象自己站在程序上,先按DP指针走到当前所在色彩格上最远的一排/列codel。然后按CC指针转向,继续往前走到一个特定的codel。再转回DP指针向前踏出一步)
  以上流程不断重复直到程序结束。
  语法成分
  数字
  每个非黑或白的色块的codel总个数代表一个数字。注意非正整数不能被以这样的方式直接表示出来,虽然它们可以被命令构造出来。当解释器遇到一些数字时,并不直接做任何事,尤其注意不会把数字自动压入stack里,压入操作是一个明确的命令。
  黑色色块和边
  图形边缘视为黑色色块。黑色色块限制程序的运行。当程序尝试按照一组DP/CC指针进入一个黑色色块时。动作将停止并将CC指针调换(左->右或右->左)并再次尝试。若一个DP指针的两种CC指针都导致进入黑色色块,则将DP指针顺时针旋转90度再次尝试,包括对此的DP指针的CC指针两种情况。如此这般若8个可能的选择都将进入黑色色块,程序终止。
  白色块
  跳转判定的第三阶段,若跳转进的是一个白色codel,不立即取得当前codel代表的色块像正常流程那样,而是继续向前(即DP的指向)一直移动。若移到一个彩色codel,完成流程。若移到一个白色codel,继续移动。若移到一个黑色codel,返回上一个移动到的白codel,并将这个codel视为一个只有一个codel的色块,重新进行跳转转移的三步直到结束或到达一个色块。
  但这个“视为”对命令的执行无影响,做改变量计算的仍是最开始移动的色块。
  命令
  一个色块跳转发生后,一个命令被执行。跳转前的色块的codel个数可以作为命令的参数。具体哪个命令被执行则由跳转前的块和跳转后的块色相的渐变的变化量和亮度的渐变的变化量两者一同决定。见表


  
Lightness change
Hue change None 1 Darker 2 Darker
None
  
push pop
1 Step add subtract multiply
2 Steps divide mod not
3 Steps greater pointer switch
4 Steps duplicate roll in(number)
5 Steps in(char) out(number) out(char)


  命令的解释见下:
  push:将跳转到的色块的codel值加入stack。
  pop:将stack弹出并丢弃。
  add:将stack顶两个值弹出后将其相加和压回。
  subtract:将stack顶两个值弹出后将其相减差压回。
  multiply:将stack顶两个值弹出后将其相乘积压回。
  divide:将stack顶两个值弹出后将其相除商后压制。
  mod:求余,同上,
  not:弹出stack顶的值,若此值为0,压回1.否则压回0.
  greater:弹出stack顶的两个值,若顶第二个值大于顶第一个值则压回1,否则压回0.
  pointer:弹出stack顶值并将DP顺时针旋转90度值数。若为负值,则逆时针旋转其绝对值数的次数。
  switch:弹出stack顶值并将CC指针转换数值的绝对数值的次数。
  duplicate:弹出stack顶值,复制一个后将两个压回去。
  roll:弹出stack顶两个值(记为x1,x2),在新stack的x1后的位置插入x2.
  in:输入一个数字或字符(数字被当做字符与被当做字符是不一样的)并压入stack中。分为两个模式。
  out:以数字或字符形式(同上)输出从stack顶弹出的值。 

为您推荐可能与“Piet”相关的内容:

PietBurnama

Piet Burnama,演员,主要作品《舞台魅影》、《屠龙女》、《Tjoet Nja' Dhien》。

PietLessnick

Piet Lessnick是一名制作人,主要作品有《金银岛》、《女大当嫁》、《Sex Up - ich k?nnt' schon wieder》。

SchrijversPiet

Schrijvers Piet,荷兰籍主教练。

PietDekker

合作关系 人物名称 合作作品 合作两次以上的影人 Damian Chapa 合作作品(2):《大片苍白》,《无冕之王》 Pin...

劳拉的星星[中德保2004年PietDeRycker执导电影]

《劳拉的星星》是由蒂洛·格拉夫·罗瑟科什、皮特·德·莱卡执导的奇幻动画片,海因里希·沙夫迈斯、Céline Vogt、Sandro Iannotta等联...

威瓦尔第

,却知道红发神父。 接着他就当上了S. Maria della Piet... Pietà的少女乐团,开始作为不同弦乐组的教师,后来则是代理指挥。乐团很快...Ospedale della Pietà任职时维瓦尔第就已经开始了歌剧创作,其第一部...

OMIOBABBINOCARO

, vorrei morir!Babbo, pietà, pietà!Babbo, pietà, pietà!英文翻译 五线谱 Oh my...

rank1

: Piet/Benno de Goeij 国籍: 荷兰 风格: Trance 主页: www.rank-1.com 1997年Piet...大家所认为的RANK 1风格差异性非常大,而Piet与Benno也会一直创...

声明:本网内容收集自互联网,旨在传播知识仅供参考,不代表本网赞同其观点,文字及图片版权归原网站所有。

更多精彩内容推荐:

湖北荆州为什么一直都发展不起来?

以前的荆州乃是兵家必争之地,为什么到了现在荆州的发展感觉一直都是停滞不前的呢?...

顺产有多疼,一般能承受住吗?

顺产有多疼,一般能承受住吗?顺产有多疼?经历过分娩的准妈妈,不约而同地表示再也不想生孩子了!宫缩阵痛强烈的时候,有些产妇疼的在床上打滚,哭天喊地;有些产妇是被护士和老公强行扛进产房待产;有些产妇疼了几天几夜,感觉整个人都要崩溃了;有些产妇苦苦哀求想要剖腹产,被拒绝后内心无比的绝望...

怎么用手机每天稳定收入30元?

每天想收入30元其实并不难学生时代,曾经兼职经验丰富,那个时候为了出去玩,可以省下半个月的生活费,靠兼职赚点小钱就能保证每天基本的温饱。于是琢磨了各种各样的方法,尤其在现在各APP 都有很多奖励机制,网络兼职可以大幅度缩减成本,随时可做,基本算是比较靠谱轻松的兼职方式,基本上轻轻...

天天用热水泡脚,是真的养生还是等于慢性自杀呢?

泡脚这件事,很长时间以来一直是一件被热议的事情;一盆热水、一块毛巾,当脚放进去的那一刹那,暖流传满全身,怎一个“舒服”了得。就算这是一件惬意的事情,市面上也存在着不小的分歧;有的人说泡脚并不是一件好事,很容易对身体造成相应的负担和威胁,这是什么情况,泡脚到底是好是坏?所谓的“慢性...

热水器一直插着费电,还是用时插着费电?

蛮困惑的...

老公聊骚,一次又一次,现在感觉真的忍不了了,怎么办?

我和老公16年结婚,当时不顾家人反对,硬是裸嫁给了他,没车没房的。我觉得这都不是事,只要感情好,是没什么过不去的。现在我们有两个宝宝,异地,我在家带孩子,他在外上班。可我一次又一次地发现他在手机上聊骚,我一遍又一遍地原谅他。以为他会改变,结果前几天他回家,我无意中发现他手机上还是一些不堪入目的内容。我现在该怎么办?...

土地承包期延长至2057年,农村新增人口如何获得土地?

喜欢【乡村关中】的朋友,请点击右上角关注,共享优质“三农”资讯!土地是农民最基本的生产生活资料,也是农民最主要的生活来源。一直以来,国家土地改革的根本原则就是稳定农村土地承包关系。1978年安徽省凤阳县小岗村的18位农民签订土地承包关系,以此为标志的家庭联产承包责任在我国各地陆续...

范冰冰经纪人穆晓光到底有多厉害?

穆晓光人称“光哥”,山东人,但在台湾长大,在台湾娱乐圈积累了众多资源,同时还是上海一家著名会所的老板。2007年,范冰冰与华谊解约后,穆晓光担任范冰冰经纪人,主导成立范冰冰个人工作室,从此辅佐范冰冰从演员转变为老板。...

电热水器24小时开着,耗电量大吗?

我家热水器一天大概只用半个小时,但是其他时间热水器都插着电,一个月总共用了两百多度的电,其余家里也没什么电器了,热水器是60升容量2100瓦的功率。...

你和异性朋友会聊私密问题吗?

以前有一个关系特别好的男闺蜜。好吧,我也算是很赶时髦了,交了一个男闺蜜,大家在一起算是无话不说的那种。他尤其喜欢跟我分享他跟他女朋友之间的事情,比如,什么时候上床了,什么时候跟他女朋友的朋友发生关系了之类的,还会跟我讲,他女朋友那里怎么怎么样(成年人都懂得)我也只是听听而已。因为...

经常口腔溃疡,有什么方法缓解?

口腔溃疡是一种非常常见的口腔内感染的疾病,很多人一听到口腔溃疡第一反应就是上火,上火也确实是一种主发病原因之一。一般来说引起口腔溃疡的主要因素还是因为体内维生素B2的缺乏,它的缺乏常见有会使嘴唇里面长疱、嘴角裂口、舌头长泡等,发病时的表现多为痛感强烈或伴有喉咙痛,严重还会影响饮食...

如果在汽车里过夜,是不是一定得一直启动着发动机在空挡状态,一晚上得费多少油?

很高兴能为大家回答这样的问题。现在自驾游的车辆特别的多,那么大家肯定会遇到在车里睡觉或者过夜的时候,在车里过夜到底要怎么做呢?首先在车里过夜,要看当地的气温而定,如果真的是天气特别冷,那么晚上睡觉的时候,车辆一定不能熄火,睡觉的时候找个被子盖上,尤其是地板下面会特别的冷。现在有的...

猜你喜欢
热门推荐
今日推荐 更多
猜你喜欢