# CSmalltalk **Repository Path**: classzheng/csmalltalk ## Basic Information - **Project Name**: CSmalltalk - **Description**: CSmalltalk是Smalltalk的一个分支,可以直接把Smalltalk嵌入C语言环境中,很适合初学者 - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-07-08 - **Last Updated**: 2023-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## CSmalltalk Readme ![CSmalltalk图标](images/CSmalltalk.png) ### 0x00 神么是CSmalltalk? CSmalltalk是Smalltalk的一个分支,可以直接将Smalltalk内嵌到C代码中,适合初学者配置环境 CSmalltalk相对于Smalltalk有一些改动,可以让初学者更快地对语言本身产生认知 ### 0x01 CSmalltalk相对于Smalltalk到底有什么改动?! 改动不多,几句话就可以说得完,但具体请移步Wiki或document ##### 改动一: 对象池支持的对象只支持128个 ```c struct objs{ /* ... */ }; struct objs objspool[128];/* 在Smalltalk中,万物皆对象 */ ``` 上面就是CSmalltalk的精髓,创建了一个对象池(具体移步代码区),可以看见,对象池只支持了128个对象 因此,我们的对象数量被限制得很小,还要减去系统的部分对象 ##### 改动二: 对象的消息发送语法改动 ```smalltalk Transcript show:'Hello world!' @Console log:('Hello world'). ``` 上面两行是Smalltalk代码,第一行是GNU Smalltalk,第二行是CSmalltalk 看得出来,CSmalltalk的消息发送改为 @对象名 方法名:(参数列表) ... 了 ##### 改动三: CSmalltalk相较于Smalltalk最大的改变 CSmalltalk是Smalltalk的一个解释器,可以嵌入到C程序中,这意味着CSmalltalk从编译型语言转变为逐行解释型语言,效率更低 ### 0x02 CSmalltalk的开发人员 目前CSmalltalk只有我(classzheng)一个人单独维护,至于加入更多的维护者还有待考虑 ### 0x03 最后鸣谢 (nil) XD