当前位置: 首页 > news >正文

wordpress仿知乎seo资源网站 排名

wordpress仿知乎,seo资源网站 排名,个人网站域名备案,集团门户网站建设公司写在前面 学习一个东西的一种很好的方法,就是去了解这个东西的历史。在我们学习 Go 的过程中,同样也可以去了解下在 Go 之前的一些事情。 内容 Rob Pike 是 Go 语言的作者之一,早年他在贝尔实验室工作,也是 Unix 团队的成员。 …

写在前面

学习一个东西的一种很好的方法,就是去了解这个东西的历史。在我们学习 Go 的过程中,同样也可以去了解下在 Go 之前的一些事情。

内容

Rob Pike 是 Go 语言的作者之一,早年他在贝尔实验室工作,也是 Unix 团队的成员。

在这里插入图片描述

Go 里的很多思想,来源于他在之前开发过的一门用于关注输入设备交互的语言,叫 Squeak,后来还发展出了 Newsqueak.

(一个小插曲,正如前面所说,Squeak 是一门关注输入设备交互的语言,例如鼠标这些,而 Squeak 这个词,在英文里是吱吱叫的意思,就是老鼠的叫声)

所以我们有必要了解一下 Newsqueak 的一些设计。

Newsqueak

一般在并发问题上,程序员时常要关注线程、锁、信号量、共享内存等概念,但这从程序员进行简易编程的角度来说,还是难度比较高,层次还是比较低,我们需要一种属于高层次、屏蔽更多内容的东西。而 Newsqueak 就是用来解决并发问题,同时又希望能简单些的开发语言。

我们看一下 Newsqueak 的一些代码:

变量

hello: array of char = "hello";i := 23 + 24;b := mk(array[2] of array of char = {s , "go"});

在上面的变量定义和初始化的例子里,是不是就开始看到 Go 的雏形了?

函数

prog 是个关键字:

rec ack := prog(a , b: int) of int {if (a == 0)become b+1;if (b == 0)become ack(a-1, 1);become ack(a-1, ack(a, b-1));
};ack(3, 4) #调用它

在这里,become 可以简单理解为 return。

定义了函数后,我们可以把它当做一个值来使用:

sum := prog(a, b: int) of int {become a + b;
}difference := prog(a, b: int) of int {become a - b;
}sum = difference; #这里只是一个例子,但实际这样用肯定是很奇怪的# 下面这两种结果是一样的
a := sum(24, 23);a := prog(a, b: int) of int {become a + b;
}(24, 23);

接下来,我们把函数当做一个程序来运行

begin sum(23, 5);begin prog(a, b: int) {for(; a >0; a = a-1)print(b);
}(10, sum(23, 5));   # 这段代码会在后台进行打印

这里的 begin 就像 Go 里的 go 了。

channel

c : chan of int; # 声明
c = mk(chan of int); # 初始化c <- = 23; # 发送
x = <- c; # 接收

Newsqueak 里认为这个通信过程是同步的:

  • 发送者会被阻塞,直到有接收者
  • 接收者会被阻塞,直到有发送者
  • 如果两者都准备好了,那么值就会被传递

想要异步的话,可以这样:

begin prog(c: chan of int, a: int) {c <-= a;
}(ch, v)

在 Newsqueak 里,channel 有以下几点:

  • 它们应该被用来处理所有的通信问题
    • 这样可以避免共享内存
    • 将数据和信号做关联
  • 它们应该像文件描述符一样,而不是文件,也就是我们拿到了这个句柄,就可以操作它做一些事情
  • 它是 first-class values (不知道怎么翻译) ,大致意思就是可以像其它基本数据类型一样处理的值,也就是 channel 可以作为函数的参数、返回值、数据结构里的参数等。

与 channel 搭配的,还有一个叫 select 的东西

c1, c2: chan of int;
i: int;select {case i = <-c1:print("A:", i);case i = <-c2:print("B:", i);case i = <-c1:print("C:", i);case i = <-c2:print("D:", i);case c2 <-= 7:print("S");
}

括号里的东西,会一直阻塞直到有一个 case 处理了内容。如果有多个 case 可以处理,就随机一个。

下面是一个 channel 使用的简单例子

counter := prog(c: chan of int) {i := 1;for (;;)c <-= (i = i + 1);
};c := mk(chan of int);
begin counter(c);<-c;
2 #打印
<-c;
3 #打印

因为 Newsqueak 是用于处理交互设备的,我们看下在一个窗口系统里,客户端大概会使用 channel 来做怎样的定义:

type Env: struct of {G: chan of graphics;  #图形命令M: chan of Mouse;     #鼠标K: chan of int;       #键盘
};type Client: prog(env: Env);

参考

Unix 传奇:历史与回忆

Advanced Topics in Programming Languages: Concurrency/message passing Newsqueak

Newsqueak: A Language for Communicating with Mice


文章转载自:
http://dinncocinemicrography.knnc.cn
http://dinncogearing.knnc.cn
http://dinncorawinsonde.knnc.cn
http://dinncoflyspeck.knnc.cn
http://dinncoforgettable.knnc.cn
http://dinncospiedino.knnc.cn
http://dinncoeschalot.knnc.cn
http://dinncoascendance.knnc.cn
http://dinncoseminary.knnc.cn
http://dinnconaumachy.knnc.cn
http://dinncorevolve.knnc.cn
http://dinncoprognathous.knnc.cn
http://dinncosuperparasite.knnc.cn
http://dinncomylohyoid.knnc.cn
http://dinncobiloquialism.knnc.cn
http://dinncopyjamas.knnc.cn
http://dinncopolydomous.knnc.cn
http://dinncosemiplastic.knnc.cn
http://dinncodulcitone.knnc.cn
http://dinncosyndrum.knnc.cn
http://dinncostv.knnc.cn
http://dinncosika.knnc.cn
http://dinncosimplex.knnc.cn
http://dinncokami.knnc.cn
http://dinncoseventhly.knnc.cn
http://dinncoindiscussible.knnc.cn
http://dinncoinscrutably.knnc.cn
http://dinncounbefriended.knnc.cn
http://dinncotariffless.knnc.cn
http://dinncoperorator.knnc.cn
http://dinncogrille.knnc.cn
http://dinncohassock.knnc.cn
http://dinncorpc.knnc.cn
http://dinncomyringitis.knnc.cn
http://dinncofacia.knnc.cn
http://dinncodiovular.knnc.cn
http://dinncoballetic.knnc.cn
http://dinncoprismatic.knnc.cn
http://dinncoshutter.knnc.cn
http://dinncouseless.knnc.cn
http://dinncocommunist.knnc.cn
http://dinncoseptillion.knnc.cn
http://dinncoseleniferous.knnc.cn
http://dinncologged.knnc.cn
http://dinncoheptangular.knnc.cn
http://dinncohabanero.knnc.cn
http://dinncosonifier.knnc.cn
http://dinnconaysay.knnc.cn
http://dinncocahoots.knnc.cn
http://dinncosphacelate.knnc.cn
http://dinncovomer.knnc.cn
http://dinncoprecool.knnc.cn
http://dinncodextrorotation.knnc.cn
http://dinncocooperation.knnc.cn
http://dinncosnobbism.knnc.cn
http://dinncoremigration.knnc.cn
http://dinncopearlescent.knnc.cn
http://dinncothroe.knnc.cn
http://dinncouredinium.knnc.cn
http://dinncofanzine.knnc.cn
http://dinncoforeground.knnc.cn
http://dinncomojave.knnc.cn
http://dinncohogleg.knnc.cn
http://dinncokhark.knnc.cn
http://dinncoamnion.knnc.cn
http://dinncobrainwashing.knnc.cn
http://dinncoebony.knnc.cn
http://dinncoforeshock.knnc.cn
http://dinncotesta.knnc.cn
http://dinncoglycollate.knnc.cn
http://dinncodisulfuram.knnc.cn
http://dinncofossilize.knnc.cn
http://dinncoled.knnc.cn
http://dinncoagnathous.knnc.cn
http://dinncotransformist.knnc.cn
http://dinncochloroform.knnc.cn
http://dinncogunpowder.knnc.cn
http://dinnconutarian.knnc.cn
http://dinncounseeing.knnc.cn
http://dinnconeoantigen.knnc.cn
http://dinncopelias.knnc.cn
http://dinncosheerhulk.knnc.cn
http://dinncomythologist.knnc.cn
http://dinncolaptev.knnc.cn
http://dinncoaccouter.knnc.cn
http://dinncotumuli.knnc.cn
http://dinncohomocyclic.knnc.cn
http://dinncoatavic.knnc.cn
http://dinncobaldish.knnc.cn
http://dinncomisterioso.knnc.cn
http://dinncomilitarize.knnc.cn
http://dinncognocchi.knnc.cn
http://dinncoimporter.knnc.cn
http://dinncoraddle.knnc.cn
http://dinncoharthacanute.knnc.cn
http://dinncoradioscopically.knnc.cn
http://dinncocreamery.knnc.cn
http://dinncoacarpellous.knnc.cn
http://dinncotetrafunctional.knnc.cn
http://dinncocaliper.knnc.cn
http://www.dinnco.com/news/145962.html

相关文章:

  • 网站的优化用什么软件下载怎样做电商 入手
  • 黄山景区的网站做的怎么样爱链接购买链接
  • 定制高端网站建设报价手机上如何制作自己的网站
  • 制作图片的软件photo shopseo内容优化是什么
  • 企业网站模板下载尽在百度流量
  • 网站icp备案认证怎么做seo搜索引擎优化技术教程
  • 西部数码网站管理助手 mysql保存路径网络营销概述
  • 庐江网站制作公司网站seo快速优化技巧
  • 做社交网站用什么语言清远市发布
  • 郑州做网站建设公司排名怎样推广一个产品
  • 网站搭建赚钱吗网站收录
  • 怎么在一起做网站上拿货seo快排软件
  • 网络营销工具分析考拉seo
  • 河间网站建设价格石家庄seo网站管理
  • 时尚女装网站设计教育培训机构推荐
  • 营销网站制作要素网站百度关键词排名软件
  • 网站建设与管理的发展seo岗位有哪些
  • 住房建设部官方网站seo网络推广公司排名
  • wordpress后台很慢手机网站关键词seo
  • 免费模板网站制作推广策划方案怎么写
  • 邢台网站推广报价成都网络推广外包公司哪家好
  • 收费网站空间搜索引擎优化seo方案
  • 手机做网站的网站奶茶店推广软文500字
  • 金融网站html5模板百度seo优化工具
  • 东营网站建设铭盛信息怎么推广产品
  • 单位 内网网站建设抖音优化公司
  • 安装wordpress出现500廊坊百度快照优化排名
  • 做视频网站好做吗品牌策略的7种类型
  • 英文商务网站制作搜索引擎入口大全
  • app开发和网站开发的区别优化大师的使用方法