{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
무료배송

배송 지역 전환

지역에 따라 재고 및 배송 속도가 다를 수 있습니다.

위치 기록

{{email ? __('Got it!') : __('Restock Alert')}}

상품입고 후 바로 알려드리겠습니다.

취소
Yami

Jingdong book

两周自制脚本语言

{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}

两周自制脚本语言

{{__(":people-members", {'people': item.limit_people_count})}} {{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ item.invalid_price }} {{ itemDiscount }}
후 종료
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }} {{ itemCurrency }}{{ item.invalid_price }} {{itemDiscount}}
{{ itemCurrency }}{{ item.valid_price }}
후에 세일 종료
후 초특가세일 시작 후 초특가세일 종료
{{ getSeckillDesc(item.seckill_data) }}
{{ __( "Pay with Gift Card to get sale price: :itemCurrency:price", { 'itemCurrency' : itemCurrency, 'price' : (item.giftcard_price ? priceFormat(item.giftcard_price) : '0.00') } ) }} ({{ itemCurrency }}{{ priceFormat(item.giftcard_price / item.bundle_specification) }}/{{ item.unit }}) 상세정보
상품 유효 기간

판매 중단

이 상품이 언제 재입고될지는 알 수 없습니다.

현재 주소로 배송 불가
품절

제품 설명

제품 세부 정보 전체보기
Editer Recommend

只需14天,从零开始设计和实现脚本语言

从解释器到编译器,支持函数、数组、对象等高级功能

东京大学&东京工业大学教授执笔

日本编译器专家中田育男作序推荐

Content Description

《两周自制脚本语言》是一本优秀的编译原理入门读物。全书穿插了大量轻松风趣的对话,读者可以随书中的人物一起从最简单的语言解释器开始,逐步添加新功能,最终完成一个支持函数、数组、对象等高级功能的语言编译器。《两周自制脚本语言》与众不同的实现方式不仅大幅简化了语言处理器的复杂度,还有助于拓展读者的视野。
《两周自制脚本语言》适合对编译原理及语言处理器设计有兴趣的读者以及正在学习相关课程的大中专院校学生。同时,已经学习过相关知识,有一定经验的开发者,也一定能从本书新颖的实现方式中受益良多。
Author Description

千叶滋

东京工业大学研究生院信息技术理工系研究科教授,兼任东京大学研究生院信息技术理工系研究科教授。著有《面向切面入门——从Java语言・面向对象步入AspectJ语言程序设计》《简明Java程序设计——Great Ideas for Java Programming》《GUI库机制——软件设计案例研习》等。

Comments

这是一本优秀的编译原理入门读物,它尝试以一种现代的方式设计一种现代的语言,即使读者对编译器已有一定程度的了解,也一定能从中学到很多。——日本编译器权威专家 中田育男

Catalogue

目录

第1部分基础篇

第1天来,我们一起做些什么吧1
1.1机器语言与汇编语言2
1.2解释器与编译器3
1.3开发语言处理器5
1.4语言处理器的结构与本书的框架6

第2天设计程序设计语言10
2.1麻雀虽小、五脏俱全的程序设计语言11
2.2句尾的分号12
2.3含糊不得的语言14

第3天分割单词17
3.1Token对象18
3.2通过正则表达式定义单词19
3.3借助java.util.regex设计词法分析器22
3.4词法分析器试运行27

第4天用于表示程序的对象30
4.1抽象语法树的定义31
4.2设计节点类34
4.3BNF38
4.4语法分析与抽象语法树42

第5天设计语法分析器44
5.1Stone语言的语法45
5.2使用解析器与组合子46
5.3由语法分析器生成的抽象语法树53
5.4测试语法分析器59

第6天通过解释器执行程序62
6.1eval方法与环境对象63
6.2各种类型的eval方法65
6.3关于GluonJ69
6.4执行程序72

第7天添加函数功能75
7.1扩充语法规则76
7.2作用域与生存周期81
7.3执行函数83
7.4计算斐波那契数89
7.5为闭包提供支持90
7.6实现闭包92

第8天关联Java语言95
8.1原生函数96
8.2编写使用原生函数的程序98

第9天设计面向对象语言101
9.1设计用于操作类与对象的语法102
9.2实现类所需的语法规则103
9.3实现eval方法104
9.4通过闭包表示对象110
9.5运行包含类的程序114

第10天无法割舍的数组115
10.1扩展语法分析器116
10.2仅通过修改器来实现数组119

第2部分性能优化篇

第11天优化变量读写性能123
11.1通过简单数组来实现环境124
11.2用于记录全局变量的环境127
11.3事先确定变量值的存放位置130
11.4修正eval方法并最终完成性能优化134

第12天优化对象操作性能137
12.1减少内存占用138
12.2能否通过事先查找变量的保存位置来优化性能141
12.3定义lookup方法144
12.4整合所有修改并执行147
12.5内联缓存152

第13天设计中间代码解释器156
13.1中间代码与机器语言157
13.2Stone虚拟机158
13.3通过栈实现环境167
13.4寄存器的使用170
13.5引用变量的值173
13.6if语句与while语句173
13.7函数的定义与调用175
13.8转换为虚拟机器语言177
13.9通过虚拟机执行184

第14天为Stone语言添加静态类型支持以优化性能187
14.1指定变量类型188
14.2通过数据类型检查发现错误193
14.3运行程序时执行类型检查204
14.4对类型省略的变量进行类型推论208
14.5Java二进制代码转换214
14.6综合所有修改再次运行程序226

第3部分解说篇(自习时间)

第15天手工设计词法分析器229
15.1修改自动机230
15.2自动机程序233
15.3正则表达式的极限235

第16天语法分析方式236
16.1正则表达式与BNF237
16.2语法分析算法238
16.3LL语法分析239
16.4算符优先分析法与自底向上语法分析244

第17天Parser库的内部结构251
17.1组合子分析252
17.2解析器组合子的内部252

第18天GluonJ的使用方法263
18.1设定类路径264
18.2启动设定265
18.3GluonJ语言267
18.4功能总结268

第19天抽象语法树与设计模式271
19.1理想的设计272
19.2Interpreter模式273
19.3Visitor模式276
19.4使用反射282
19.5面向切面语言284
Introduction

本书是一本编译原理的入门读物。过去,大家普遍认为编译器与解释器之间存在很大的差异,因此会分别编写针对编译器与解释器的图书。不过,最近编译器与解释器之间的界限越来越模糊,我们只要稍微了解一下常见的程序设计语言,就会发现两者已不再是对立的概念。




因此,与其说本书是编译原理的入门书,不如说是语言处理器的入门读物更为恰当。语言处理器是用于执行程序设计语言的软件,它同时包含了编译器与解释器。本书看似用了大量篇幅讲解解释器的原理,其实是在讲解编译器与解释器通用的理论。第1 章将详细介绍各章节的具体内容。




本书采用了Java 语言来实现语言处理器。在设计语言处理器时,C 语言或C++ 语言更为常见,加之本书没有借助yacc 等常用的工具来生成语言处理器,因此读者也许会认为本书的实用性不足。


本书在介绍语言处理器的设计方式时,尽可能采用了较新颖的手段。C 语言或C++ 语言结合yacc 的方式性能较差,且是上世纪80 年代的实现方式。在那之后,程序设计语言飞速发展,已不可同日而语,其运行性能也大幅提升。入门读物也应该与时俱进,讲解与过去不同的设计方式,展现它们的实践价值。




时至今日,软件领域的发展依然日新月异,并逐渐渗透至生活的方方面面,这一势头无疑将持续下去。在此期间,各类技术必将不断发展,为了跟上技术更新的步伐,软件应当以略微领先于时代的设计思路开发。




很久以前,笔者曾使用C++ 语言开发过适用于工作站的语言处理器,当时,时钟频率仅有100 兆赫,内存也不过几百兆字节。那套软件幸运地在各种环境下运行了十年以上。有一天,我收到了一封邮件。我记得好像是一个德国的年轻人,他洋洋洒洒写了很多,批评那套软件的设计有不少问题。还说开发者应当合理使用模板,并灵活运用各种库,要学习使用设计模式,还要用XML 来表示抽象语法树,等等。




他指出我太节省内存,只顾着提升性能,结果程序难以阅读。从当时的主流软硬件标准来看,这些批评确实合情合理,但那套系统毕竟是十年前的产物。在当时软硬件性能孱弱的情况下,如果遵循他的建议,最终完成的语言处理器恐怕会被打上缺乏使用价值的标签(顺便一提,提出批评的那位年轻人虽然说了很多,却没有写一行代码)。




然而,从这件事中我深刻体会到,软件有着惊人的生命力,即使在开发时采用了最佳设计,最终还是会随着时代的进步而被迅速淘汰。因此,前文说软件应当以略微领先于时代的设计思路开发有其合理性。当然,我们也可以不关心他人的批评,尽可能缩短软件的生命周期,并积极抛弃过时的内容。具体采用哪种策略因人而异。


希望读者能够在阅读本书时始终记住这些理念。读过本书之后,如果大家觉得收获良多,我将深感荣幸与喜悦。




2012 年 新春


千叶滋

명세서

상표 Jingdong book
브랜드 영역 China

면책성명

제품 가격, 포장, 사양 등의 정보는 예고 없이 변경될 수 있습니다. 적시에 제품 정보를 업데이트 할 수 있도록 최선을 다하지만, 받은 실제 제품을 참고하시기 바랍니다. 제품을 사용하기 전에 반드시 제품에 동봉된 라벨, 경고 및 설명을 읽어 주십시오.

상세정보 보기
찜한 목록에 추가
{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}
{{__("Buy Directly")}} {{ itemCurrency }}{{ item.directly_price }}
수량
{{ quantity }}
{{ instockMsg }}
{{ limitText }}
{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}
JD@CHINA 판매
배송지
{{ __("Ship to United States only") }}
69이상 주문 시 무료 배송
정품 보증

장바구니에 추가됨

쇼핑 계속하기

당신을 위한 추천

{{ item.brand_name }}

{{ item.item_name }}

{{ item.currency }}{{ item.market_price }}

{{ item.currency }}{{ item.unit_price }}

{{ item.currency }}{{ item.unit_price }}

쿠폰

{{ coupon.coupon_name_new | formatCurrency }}
받기 받았음 마감
{{ getCouponDescStr(coupon) }}
{{ coupon.use_time_desc }}
곧 만료됩니다: {{ formatTime(coupon.use_end_time) }}

친구들과 공유하세요

취소

Yami 기프트카드 전용특가

기프트카드로 결제하면 전용특가를 받을 수 있습니다

규칙 설명

기프트카드 전용특가는 일부 상품에 대한 특혜가격입니다.

기프트카드 전용특가 상품 구매 시 E-기프트 카드 잔액으로 결제하고 기프트카드 잔액이 주문 내 상품의 총액을 지불하기에 충분하하 기프트카드 전용특가가 자동으로 활성화됩니다.

기프트 카드 잔액으로 결제하지 않거나 기프트카드 잔액이 전항의 요건을 충족하지 못할 경우 기프트카드 전용특가를 활성화할 수 없으며 상품은 정상 가격으로 구매할 수 있습니다.

기프트카드 전용특가 상품 구매 시 잔액이 부족할 경우 장바구니 또는 결제 페이지에서 "충전" 버튼을 클릭하여 기프트카드를 구매 및 충전할 수 있습니다.

기프트카드 전용특가가 있는 상품은 "전용특가"라는 특별한 가격표시가 표시됩니다.

질문이 있으시면 언제든지 고객 서비스에 문의하십시오.

Yami는 기프트카드 전용특가 관련 최종 해석권을 보유합니다.

Yami 판매

서비스 보장

Yami $49 이상 무료 배송
Yami 걱정 없는 반품/교환
Yami 미국에서 발송

배송 정보

  • 미국

    표준 배송 $5.99(알래스카, 하와이 제외), 최종 가격 $49 이상 시 무료 배송

    지역 배송 $5.99(캘리포니아, 뉴욕, 뉴저지, 매사추세츠, 펜실베이니아, 위 주의 일부 지역), 최종 가격 $49 이상 시 무료 배송

    2일 이내 배송(알래스카 및 하와이 포함) $19.99부터 시작

반품 및 교환 정책

Yami는 고객님께 최상의 A/S를 제공하고, 모든 분들이 Yami에서 안심하고 쇼핑할 수 있도록 노력하고 있습니다. Yami의 자영 상품은 반품 및 교환 조건을 충족하는 경우, 상품 수령 후 30일 이내에 반품 및 교환할 수 있습니다(식품은 품질 문제로 인해 7일 이내에 반품 및 교환이 가능합니다. 모든 고객이 안전하고 고품질의 제품을 받을 수 있도록 뷰티 제품은 개봉 또는 사용 후에는 품질 문제를 제외하고 환불 또는 반품을 제공하지 않습니다. 기타 특별 카테고리의 제품은 고객 서비스에 문의하시기 바랍니다).
이해와 지원에 감사드립니다.

상세정보 보기

Yami 판매

Yami E-기프트카드 사용 약관

구매 시 자동 충전을 선택한 경우, 주문 완료 후 기프트카드가 자동으로 계정에 충전됩니다.

구매 시 이메일 발송을 선택한 경우, 주문 완료 후 시스템이 자동으로 카드 번호와 비밀번호를 입력한 이메일로 발송합니다.

이메일을 보낼 때, 모든 사용자는 이메일에 있는 카드 번호와 비밀번호를 사용하여 기프트카드를 충전할 수 있으니, 이메일 정보를 잘 보관하세요.

이메일을 받는 데 문제가 있으면, 고객 서비스에 연락하여 처리해 주세요.

이메일을 보낼 때, 기프트카드가 교환되지 않았다면 이메일을 재발송할 수 있습니다. 이미 다른 사용자에 의해 교환된 경우에는 보상할 수 없습니다.

Yamibuy의 E-기프트카드는 자영 또는 제3자 상품 구매에 사용할 수 있습니다.

Yamibuy의 E-기프트카드는 유효 기간 제한이 없으며, 장기간 유효합니다.

Yami 전자 상품권의 금액은 여러 번에 나눠서 사용할 수 있습니다;

Yami 전자 상품권 업무 규칙의 최종 해석 권한은 Yami 웹사이트에 있습니다.

반품 및 교환 정책

이미 사용된 E-기프트카드는 환불이 불가능합니다.

판매자: JD@CHINA

서비스 보장

Yami $49 이상 무료 배송
Yami 최고의 A/S
Yami 미국 본토에서 발송

배송 정보

  • 미국

    표준 배송 $5.99(알래스카, 하와이 제외), 최종 가격 $49 이상 시 무료 배송

    지역 배송 $5.99(캘리포니아, 뉴욕, 뉴저지, 매사추세츠, 펜실베이니아, 위 주의 일부 지역), 최종 가격 $49 이상 시 무료 배송

    2일 이내 배송(알래스카 및 하와이 포함) $19.99부터 시작

반품 및 교환 정책

제품을 받으신 후 30일 이내에 제품을 반품하실 수 있습니다. 반품된 품목은 구매에 대한 원본 송장을 포함하여 원래 포장된 새 품목이어야 합니다. 고객이 자신의 비용으로 제품을 반품합니다.

JD@CHINA 판매

서비스 보장

Yami 점포간 $:amount 이상 구매 시 무료 배송
Yami 30일 반품/교환 보장

Yami-중국 집하창고

Yami는 중국 내 주요 우수매장에서 제품을 선별하여 모아 Yami 중국통합센터로 배송하며 택배를 합친 후 전국 각지의 주소로 배송해 드립니다. 점포간 무료 배송 조건은 최저 $69입니다. 여러 판매자가 제공하는 다양한 상품 중에서 원하는 상품을 선택하고 점포간 무료배송으로 저렴한 배송비를 쉽게 누릴 수 있습니다.

반품 정책

30일 이내 반품 및 교환 보증을 제공합니다. 제품은 새로 사용하지 않은 원래 포장에 구매 증명서가 첨부되어 있어야 합니다. 상품 품질 문제, 잘못된 배송, 배송 누락 등 판매자의 실수로 인한 경우 환불 처리됩니다. 기타 사유로 인한 반품 및 교환은 배송비는 고객이 자체로 부담하셔야 합니다. 모든 제품은 장거리 배송을 하기 때문에 간혹 간단한 외부 포장이 눌려 마모되는 등이 있지만 내부 품질 문제가 없는 경우 반품 및 교환할 수 없습니다.

배송 정보

Yami 중국집하배송 Consolidated Shipping 배송비 $9.99 ($69 이상 주문시 무료배송)

중국 판매자는 주문 후 영업일 기준 2일 후에 상품을 발송합니다. 모든 택배는 Yami 중국통합센터(특별한 상황 및 중국 내 개별 법정 공휴일 제외)에 도착하여 택배를 합친 후 UPS를 통해 미국으로 배송됩니다. UPS는 중국에서 발송 후 미국까지 평균 10영업일 정도 소요되며 직배송 주문 번호에 따라 수시로 추적 및 조회할 수 있습니다 전염병의 영향으로 현재 물류가 5일 정도 지연될 수 있습니다. 택배는 고객 서명이 필요합니다. 서명하지 않은 경우 고객은 택배가 분실될 위험을 부담하게 됩니다.

JD@CHINA 판매

서비스 보장

69이상 주문 시 무료 배송
정품 보증

배송 정보

Yami Consolidated Shipping배송비$9.99($69 이상 주문 시 무료 배송)


Seller will ship the orders within 1-2 business days. The logistics time limit is expected to be 7-15 working days. In case of customs clearance, the delivery time will be extended by 3-7 days. The final receipt date is subject to the information of the postal company.

포인트 규칙

모든 품목은 Yamibuy 의 프로모션이나 포인트 이벤트에서 제외됩니다.

반품 및 교환 정책

제품을 받으신 후 30일 이내에 제품을 반품하실 수 있습니다. 반품된 품목은 구매에 대한 원본 송장을 포함하여 원래 포장된 새 품목이어야 합니다. 고객이 자신의 비용으로 제품을 반품합니다.

Yami

Yami 앱 다운로드

맨 위로 돌아가기

당신을 위한 추천

브랜드 스토리

Jingdong book

为您推荐

Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折

리뷰{{'('+ commentList.posts_count + ')'}}

당신의 체험을 공유하고 더 많은 사용자가 선택할 수 있도록 도와줍니다.

리뷰 작성
{{ totalRating }} 리뷰 작성
  • {{i}}별

    {{i}} 별

    {{ parseInt(commentRatingList[i]) }}%

Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}접기

{{ strLimit(comment,800) }}전체 보기

Show Original

{{ comment.content }}

Yami
모두 보기

{{ formatTime(comment.in_dtm) }} 구매 완료 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}
Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}접기

{{ strLimit(comment,800) }}전체 보기

Show Original

{{ comment.content }}

Yami
모두 보기

{{ formatTime(comment.in_dtm) }} 구매 완료 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}

조건에 맞는 리뷰가 없습니다

리뷰 상세

Yami Yami

{{ showTranslate(commentDetails) }}접기

{{ strLimit(commentDetails,800) }}전체 보기

Show Original

{{ commentDetails.content }}

Yami
모두 보기

{{ formatTime(commentDetails.in_dtm) }} 구매 완료 {{groupData}}

{{ commentDetails.likes_count }} {{ commentDetails.likes_count }} {{ commentDetails.reply_count }} {{commentDetails.in_user==uid ? __('Delete') : __('Report')}}

내용을 입력하세요

답변{{'(' + replyList.length + ')'}}

Yami Yami

{{ showTranslate(reply) }}접기

{{ strLimit(reply,800) }}전체 보기

Show Original

{{ reply.reply_content }}

{{ formatTime(reply.reply_in_dtm) }}

{{ reply.reply_likes_count }} {{ reply.reply_likes_count }} {{ reply.reply_reply_count }} {{reply.reply_in_user==uid ? __('Delete') : __('Report')}}

내용을 입력하세요

취소

지금까지의 모든 리뷰입니다!

리뷰 작성하기
상품 평점

댓글을 입력하세요.

  • 좋은 닉네임이 당신의 리뷰를 더 인기 있게 만들 것입니다!
  • 여기에서 닉네임을 변경하면 개인정보의 닉네임도 같이 변경됩니다.
리뷰를 남겨주셔서 감사합니다
당신의 좋은 리뷰는 우리 커뮤니티가 아시아 최고의 상품을 찾는 데 도움이 됩니다.

신고하기

취소

이 리뷰를 삭제하시겠습니까?

취소

최근 본 상품

브랜드 스토리

Jingdong book