首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GHC语言扩展的源代码在哪里:"箭头"?

GHC语言扩展的源代码可以在GHC的官方GitHub仓库中找到。GitHub是一个全球最大的代码托管平台,提供了开源项目的代码仓库和版本控制功能。在GitHub上搜索GHC项目,可以找到GHC的官方仓库,其中包含了GHC的源代码以及相关的文档和工具。

GHC(Glasgow Haskell Compiler)是一个用于编译和执行Haskell语言的编译器。Haskell是一种函数式编程语言,GHC是Haskell语言的主要编译器之一,也是最常用的编译器之一。GHC提供了许多语言扩展,这些扩展可以扩展Haskell语言的功能和表达能力。

在GHC的源代码中,GHC语言扩展的实现通常位于"compiler"目录下的子目录中。具体而言,GHC语言扩展的源代码可以在"compiler/parser"目录下找到。在该目录下,每个语言扩展通常对应一个单独的源代码文件,文件名以扩展名作为后缀。

对于GHC语言扩展的源代码,可以通过以下步骤获取:

  1. 打开GitHub网站(https://github.com)。
  2. 在搜索框中输入"GHC",然后按下回车键进行搜索。
  3. 在搜索结果中找到GHC的官方仓库,点击进入该仓库页面。
  4. 在仓库页面中,可以找到"compiler"目录,点击进入该目录。
  5. 在"compiler"目录中,可以找到"parser"目录,点击进入该目录。
  6. 在"parser"目录中,可以找到对应GHC语言扩展的源代码文件。

需要注意的是,GHC的源代码是一个庞大的项目,包含了许多文件和目录。如果要查找特定的语言扩展源代码,可以使用GitHub提供的搜索功能,通过关键词进行搜索,以快速定位到目标文件。

推荐的腾讯云相关产品:腾讯云代码托管(https://cloud.tencent.com/product/codespaces)是一个提供代码托管和协作开发的云服务,可以帮助开发者更好地管理和共享代码。腾讯云代码托管支持Git版本控制系统,并提供了与GitHub类似的功能,可以方便地托管和管理GHC的源代码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C语言指针值在哪里SRAM

电脑里面有三种cache,可以看到L1最小,L3最快 大小 量相差很大 这是我自己电脑实测,最慢反而是内存,算完是58.49G/s,L1居然到了2K G这个速度,L3是内存大概3倍多。...RAM掉电数据会丢失,RW-data是非0初始化数据,已初始化数据需要被存储掉电不会丢失FLASH中,上电后会从FLASH搬移到RAM中。...SDRAM 大概是这样 LPDDR4是新一代面向移动设备低功耗内存,它属于SDRAM家族存储器产品。...虽然SRAM速度更快,读写时间也更短,但SRAM成本较高,所以存储器容量较小情况下,通常使用SRAM,而对于大容量存储器,则使用SDRAM。...放入该部分启动时不会被初始化,软件重启后也会保持值不变。

11510

GitHub趋势榜第一:超级命令行工具Semantic,比较解析源代码

新智元报道 来源:GitHub 编辑:大明 【新智元导读】作为开发者,天天都要与源代码打交道,面对不同版本,不同语言代码进行比较、分析,理顺开发流程往往是开发者日常。...近日,一款名为Semantic源代码分析比较工具一举登上了GitHub趋势榜榜首,一起来看看! 作为开发者,你是否对不同源代码段之间解析和比较困惑不已呢?...Semantic是一个Haskell库,也是一个用于分析和比较源代码命令行工具。 本文将从应用功能、语言支持、开发、技术和架构、许可等五个方面介绍Semantic这款工具。...Semantic利用了许多有趣算法和技术: Myers算法(SES)如论文An O(ND)差分算法及其变化所述 RWS-Diff:分层数据中灵活高效变化检测中描述RWS。...简要定义解释器(Abstracting Definitional Interpreters)实现。可扩展为基于语法术语单点表示。 关于授权许可 Semantic基于MIT许可。

85230
  • GitHub趋势榜第一:超级命令行工具Semantic,比较解析源代码

    ---- 新智元报道 来源:GitHub 编辑:大明 【新智元导读】作为开发者,天天都要与源代码打交道,面对不同版本,不同语言代码进行比较、分析,理顺开发流程往往是开发者日常。...近日,一款名为Semantic源代码分析比较工具一举登上了GitHub趋势榜榜首,一起来看看! 作为开发者,你是否对不同源代码段之间解析和比较困惑不已呢?...Semantic是一个Haskell库,也是一个用于分析和比较源代码命令行工具。 本文将从应用功能、语言支持、开发、技术和架构、许可等五个方面介绍Semantic这款工具。...Semantic利用了许多有趣算法和技术: Myers算法(SES)如论文An O(ND)差分算法及其变化所述 RWS-Diff:分层数据中灵活高效变化检测中描述RWS。...简要定义解释器(Abstracting Definitional Interpreters)实现。可扩展为基于语法术语单点表示。 关于授权许可 Semantic基于MIT许可。

    63610

    热爱函数式你,句句纯正 Haskell【类型篇】

    我们从 wiki 上可以找到以下要点: Haskell 是一种标准化,通用纯函数式编程语言,有惰性求值和强静态类型; Haskell中,“函数是第一类对象”。...调试 目前 Haskell 主要编译器是 GHC,下载地址,你可以创建 .hs 文件,用 Notepad++ 打开。 GHCi 是 GHC 一部分,可以解析、调试 Haskell 程序。..." :r 用来重新导入当前源代码文件; :cd 改变当前GHCi路径; Prelude> :cd C:\Users\User\Desktop :edit 用默认文本编辑器编辑当前导入文件...Prelude> :t "str" "str" :: [Char] Int 有符号整数,它范围与操作系统和 GHC 位数有关。...; 小结 入门第一篇,类型程序语言中非常重要!

    95630

    Ecplise使用练习

    是一种可扩展开放源代码IDE(Integrated Development Environment集成开发环境)。     ...最初主要用于Java语言开发,通过安装不同插件,Eclipse可以支持不同计算机语言开发。   2:Eclipse特点描述(基础班使用) a.完全免费free:可免费使用。...b.完全开源free:开放源代码。 c.纯Java语言编写:早期是由Java开发人员使用Java语言编写,该工具所带来快捷帮助完全符合Java编程人员习惯。...d.免安装(绿色软件):由于使用Java语言编写,需要为其提供JDK与JRE。 e.扩展性强:工具本身不具有的功能,可以通过标准接口扩展添加功能。...就是一个标记,从哪里开始。 如何设置断点?     你想看哪里程序,你就在那个有效程序左边双击即可。 在哪里设置断点?     哪里不会点哪里

    1K10

    Pandoc安装实现Markdown转PDF (CentOS6)

    Pandoc简介 pandoc 是一种文档标记语言转换工具,可实现不同文档标记语言格式转换,由Haskell语言编写,以命令行形式实现与用户交互,可支持多种平台,windows\linux\mac...据说在出版行业也使用。...ghc是haskell编译器,cabal是一种包管理器,可以很方便自动安装各种包和依赖,pandoc就是使用cabal来安装,TeX是一种文档排版系统,texlive是like unix下一种TeX...,这个字体Centos上须要先安装好 -V geometry:margin=1in   指定上下左右空白尺寸 -o 指定输出文件名 总结 pandoc非常强大,可以对几乎所有的文档格式进行互转,比如...另外本文只介绍CentOS操作系统上比较合适安装方式,其他比如Ubuntu上可能有更好更方便安装方式,请参考Pandoc官方文档http://pandoc.org/installing.html

    2.3K60

    铁定不纯IO_Haskell笔记5

    写在前面 一直有个疑惑,Haskell号称纯函数式语言,那么铁定不纯场景(肯定有副作用,或者操作本身就是副作用)如何解决?...(GHC.Prim.State# GHC.Prim.RealWorld -> (# GHC.Prim.State# GHC.Prim.RealWorld, a #))...-运算符把String取出来,赋值给line变量,为空则什么都不做(返回IO (),结束),否则把该行内容通过putStrLn输出到标准输出并换行,并递归执行main 其中,main表示入口函数(与C语言类似...’ I/O List场景(把m换成IO,t换成[]),参数类型约束是[IO a],返回值类型约束是IO [a],所以相当于: sequence' [] = do return [] sequence...在这之前操作都只是一种承诺,不得不做时候才要求兑现承诺,类似于JSPromise: function toUpperCase() { let io; let contents = new Promise

    1.3K30

    泛型和元编程模型:Java, Go, Rust, Swift, D等

    我将从C这样不具备泛型系统语言如何解决这个问题开始,然后分别展示其他语言如何在不同方向上逐渐添加扩展,从而发展出各具特色泛型系统。...两个基础流派中每一个流派都有很多方向可以扩展,以增加额外能力或安全性,不同语言已经将两者带入了非常有趣方向。有些语言如Rust和C#甚至提供了这两种选择!...有很多不同方式可以在运行时实现并在语言中导出该功能,你可以同一种语言中使用多种方式。然而不同语言大多数采用某种特定方式实现,然后语言扩展则充分利用所选实现优势。...这种方式虽然被Haskell类型类使用,但GHCGHC是Haskell编译器)通过内联和特殊化,也可以做单态化优化。...生成源代码 单态化最简单方法就是源代码层面就进行复制。这样编译器甚至不需要支持泛型,C和Go等(编译器不支持泛型)语言用户有时会这样做。

    3.1K30

    MySQL主从复制详解

    MySQL复制原理 (1).Slave服务器上执行start  slave命令开启主从复制开关,开始进行主从复制; (2).此时,Slave服务器I/O线程会使用通过master上已经授权可以进行复制操作用户连接...端I/O线程,返回信息中除了binlog日志内容外,还有Master服务器端记录binlog文件名称,以及binlog中下一个指定更新位置。...(3)MySQL复制带来优势在于:       扩展能力:       通过复制可以将MySQL性分到一个或多个slave上。...容灾能力:         可以物理距离较远另一个数据建立slave,保证主实例所在地区遭遇灾难时,另一个数据中心能快速恢复。   ...MySQL复制有三种核心格式 复制工作原理是数据库修改记录到bin log日志并传递到slave,然后slave本地还原过程。而时间记录到bin log格式会有所不同。

    2.4K30

    Java 常用开发工具介绍,重点是Eclipse使用及注意事项,很实用

    ) D:Eclipse 和 MyEclipse 区别 a:Eclipse 是一种可扩展开放源代码 IDE 。...b:Eclipse 特点描述 免费 纯 Java 语言编写 免安装 扩展性强 c:MyEclipse Eclipse 基础上追加功能性插件,对插件收费 WEB 开发中提供强大系统架构平台...网络配图 2、Eclipse 中 HelloWorld 案例以及汉化 A: 选择工作空间 工作空间 其实就是我们写源代码所在目录 B: 用 Eclipse 来完成一个 HelloWorld 案例 代码以项目为基本单位...注意:请只删除注释部分,不是注释部分不要删除。 C: 行号显示和隐藏 显示:代码区域最左边空白区域,右键 -- Show Line Numbers 即可。 隐藏:把上面的动作再做一次。...如何设置断点: 你想看哪里程序,你就在那个有效程序左边双击即可。 在哪里设置断点: 哪里不会点哪里。 目前:我们就在每个方法第一条有效语句上都加。

    1.9K80

    Functor与Applicative_Haskell笔记7

    但可以肯定是,I/O Action这个容器里装着一个值(不论这个值来自哪里),而fmap能够把函数作用于这个值,同样得到一个装着新值I/O Action 至此,盒子比喻仍然很恰当:纯环境下容器是木质宝箱...Functor ((->) r) -- Defined in ‘GHC.Base’ instance Functor ((,) a) -- Defined in ‘GHC.Base’ (注意:简单起见...一下 f Int -> f a -> f [a] 所以,lift就是方便让普通函数能够f语境里正常工作 P.S.类似的lift函数共有3个: liftA :: Applicative f => (a...实例就不一定了,因为这两条规则只是道德约束,没有强检查,所以实现自定义Functor实例时应该注意自觉遵守 三.Applicative functors 看名字叫加强版Functor,那么强在哪里?...,并将他升级成一个函数可以运作两个functor之上 这就是所谓lifting(升级?)

    59030

    Haskell 自定义type与typeclass

    部分类似于OOP中class,上文中值构造器类似于class构造方法,Book可以认为是构造方法方法名,java等一些语言中构造方法是与class是同名,但是Haskell中很明显没有这种约束...解释下:class Eq a where代表我们定义了一个typeclass叫做Eq,a是一个类型变量,他代表任何我们定义instance时类型,接下来我们定义了几个函数,不一定要实现函数但一定要写出函数类型声明...我们可以很多地方加上类型约束,这里就是class Num where 中a上加上它必须是Eq instance约束。...其实这可以理解为定义Num这个class时,必须先定义他为Eqinstance。 泛型instance Maybe或者List这种与TrafficLight不同,Maybe是一个泛型。...但类型也有自己标签,叫做kind,kind是类型类型。 我们可以ghci中通过:k来获取一个类型kind: Prelude> :k Int Int :: * *代表这个类型是具体类型。

    7410

    从惰性IO说起_Haskell笔记6

    List,就像'a' : 'b' : 'c' : []“承诺”会有一个'a'开头List,这个List有多长,占多少空间,真正需要求值之前都是未知(也没必要知道,所以允许存在无限长List,而不用担心如何存储问题...) 但这种惰性并非十全十美,带来直接问题就是效率不高,尤其是巨长List场景(比如读文件),处理一个“承诺”(模拟场景里tail())成本可能不高,但如果积攒了一大堆“承诺”,处理这些“承诺...make sourceFile编译执行外,还有一种直接run源码方式: $ runhaskell testArgs.hs -b -c /absolute/path/to/ghc-8.0.1/bin/ghc...做法类似于C语言,要给个“种子”: random :: (Random a, RandomGen g) => g -> (a, g) 其中Random和RandomGen种子类型分别为: instance...\n")) 为了把file变量传入errorHandler,我们多包了一层,看起来蠢蠢,而且能保留现场信息很有限 所以,像其他语言一样,我们能够从异常对象身上取出一些错误信息,例如: exists'

    2.3K30

    IDA简单使用

    ,有符号文件,所以分析起来很方便,函数名都有: 箭头这块ctrl+f,出现搜索框,直接搜索main: 右边箭头位置按空格: 可以看到我们主函数代码,在这块按一下F5,就可以用到IDA中最强大方便功能...,俗称F5大法,会编译成成语言形式: 对照源代码,基本流程很清晰。...双击printf中参数a: 按一下shift+f12就是字符串信息: IDA其他页面都有名字,这里不再解释,接下来我们看一下没有符号文件时候IDA: 可以看到这里大部分函数名是sub_xxx...,搜索main函数也是搜不到: 这种情况我们只能从start开始找主函数,就像在OD里面找到主函数一样,当然也可以通过字符串叉查找。...首先通过字符串查找一下: 双击: 标记这串字符串,按ctrl+x,看看哪里引用了这段字符串: 然后就到了主函数这里: F5就可以查看伪代码,接下来我们靠特征找一下,函数名搜索框搜索start:

    78440

    不一样JavaScript

    程序执行时CPU指令集上,编译型语言会在执行前被编译成可执行文件,所以必须强类型,而JavaScript则会在执行时动态编译和判定类型。...3.2.1 源代码 这里源代码是多模块,多文件联合包括框架特有语法糖、预编译样式、附件源文件(图片等)、标准JavaScript代码等众多复合元素,扩展名包含但不限于:.js,.vue,.scss,...附注:上图是VSCode中利用babylon工具对代码:var a = 123进行分词结果 分词规则:分词程序分析源代码时候,它会一个一个字母去读取源代码,直到遇到空白符、操作符或者其他特殊符号会认为是一个词结束...AST抽象语法树简写abstract syntax tree,上个章节V8执行JavaScript代码时会先将源代码编译成AST转成字节码执行,事实上,无论哪种语言,在编译时都会将源代码编译成AST...答案:借助ASTExploer工具,将源代码输入左侧,右侧AST中直接找到这段代码对应到AST中是什么,如下图: ?

    46820

    VsCode中使用Jupyter

    (以前称为IPython Notebook)是一个开源项目,可让您轻松地一个名为Notebook画布上组合Markdown文本和可执行Python源代码。...pip安装库在这里 我这个地方install jupyter 因为有的人可能没有安装过 命令行行输入jupyter有反应,是哪里做出了反应找一下 果不其然都是exe可执行文件 这个命令是找powershell...-cookbook.readthedocs.io/zh_CN/latest/c10/p09_add_directories_to_sys_path.html 因为py是一种脚本语言,所以实现源代码有些透明...以后给你讲 注意:默认情况下,Visual Studio Code Python扩展名将在笔记本编辑器中打开Jupyter笔记本(.ipynb)。如果要禁用此行为,可以设置中将其关闭。...打开一个笔记本时,必须要与核心通信 点箭头 结果就出来了 信任笔记本电脑# Jupyter Notebook中可能包含恶意源代码

    6K40

    newtype_Haskell笔记8

    一.ZipList与List List场景,xs ys表示从左侧xs中取出函数作用于右侧ys中每一项,有两种实现方式: 笛卡尔积 拉链式一一结对 分别对应[]和ZipList,例如: import...实际上,newtype所做事情只是创建新类型,把现有类型包装起来 类似的场景下,JS的话,我们会这么做: class ThisType { constructor(value) { this.value...不像type创建别名类型可以与原类型等价换用,newtype创建新类型与原类型是完全不同东西,唯一联系是新类型内部实际操作是原类型(通过持有原类型实例引用),通过这种方式在外层实现对原类型扩展...(typeclass)实现时 四.newtype与惰性计算 Haskell中大多数计算都是惰性(少数指的是foldl'、Data.ByteString之类严格版本),也就是说,计算只不得不算时候才会发生.../Err.hs:79:14 in base:GHC.Err undefined, called at :37:10 in interactive:Ghci17 而下面这种形式就不会被计算

    61530

    一款支持手绘风格开源图表工具—Excalidraw

    前言 文章撰写中,我们常常需要配以图表或者图形来更加丰富呈现。...•⚒️ 提供广泛工具 - 矩形、圆形、菱形、箭头、线条、自由绘制、橡皮擦等。•️ 支持箭头绑定和标签箭头。• 支持撤销/重做。•支持缩放和平移。...功能 Excalidraw.com网站是使用Excalidraw可以构建内容最小展示。其源代码也是这个存储库一部分。该应用程序具有以下功能: •PWA支持(离线工作)。• 实时协作。...react-dom @excalidraw/excalidraw•或通过yarn:yarn add react react-dom @excalidraw/excalidraw 集成 •VScode扩展...使用语言 •TypeScript 88.0%•SCSS 4.8%•MDX 4.3%•JavaScript 2.6%•HTML 0.3%•CSS 0.0% 引用 更多详细内容大家可以看这里: https

    83410
    领券