Concept: Type Checking

There is no static type checking in Scheme; type checking is done at run time.

There is unfortunately little agreement about many of the terms which are associated with type checking: so I'll give you the definitions we'll use in class, while pointing out some of the other interpretations.

Type safe
Type safe means that the language guarantees that one type can't be incorrectly used in place of another type, in other words, that all expressions are guaranteed to be type consistent. This can be done checked statically, dynamically, or a mixture. Scheme, Ada, Smalltalk, and Prolog are examples of type safe languages. Fortran and C are examples of languages that aren't type safe.
Static/Dynamic type checking
This refers to when type checking occurs. Static type checking takes place during compilation, dynamic type checking takes place at run-time. This distinction makes no guarantee about the completeness of the type checking. Ada is a statically typed, type-safe language, which is to say that the necessary type checking takes place at compile time. (This was true at least of the old Ada, Ada 95 appears to support dynamic binding, so I'm not certain if it can do all checking statically.) C is also statically typed, but not type safe. Scheme is dynamically typed and type safe. (Some texts use statically typed to imply type safe, but I think this is confusing, because we should be separating out the issues of the completeness of the type checking (type safety) from the time when the type checking occurs (dynamic vs. static).)
Strongly typed
There are two common definitions for strongly typed (sorry) -- one is strongly typed = statically typed and type safe; the other is strongly typed = type safe. I will attempt to use the latter definition. Scheme and Ada are strongly typed by this definition.
Weakly typed
Weakly typed means "not type safe". Fortran and C are examples of weakly typed languages.

转自:http://courses.cs.washington.edu/courses/cse341/02wi/scheme/basics.html

关于type check的定义的更多相关文章

  1. Vue报错 type check failed for prop “xxx“. Expected String with value “xx“,got Number with value ‘xx‘

    vue报错    [Vue warn]: Invalid prop: type check failed for prop "name". Expected String with ...

  2. Vue报错之"[Vue warn]: Invalid prop: type check failed for prop "jingzinum". Expected Number with value NaN, got String with value "fuNum"."

    一.报错截图 [Vue warn]: Invalid prop: type check failed for prop "jingzinum". Expected Number w ...

  3. Invalid prop: type check failed for prop "XXX". Expected String, got Object.

    项目是Vue的,基于elementUI的后台管理系统. Invalid prop: type check failed for prop "total". Expected Str ...

  4. vue调用组件,组件回调给data中的数组赋值,报错Invalid prop type check failed for prop value. Expecte

    报错信息: 代码信息:调用一个tree组件,选择一些信息 <componentsTree ref="typeTreeComponent" @treeCheck="t ...

  5. vue type check failed for prop . Expected Number, got String

    代码是:fileNumLimit接收的类型是Number <vue-upload fileNumLimit='100'/> 改为 <vue-upload :fileNumLimit= ...

  6. Invalid prop: type check failed for prop "maxlength". Expected Number, got String.

    1.项目中,使用element-ui的input表单的maxlength属性报错 2.使用场景:       <el-input v-model="fname"  maxle ...

  7. vue.esm.js?efeb:628 [Vue warn]: Invalid prop: type check failed for prop "defaultActive". Expected String with value "0", got Number with value 0.

    vue.esm.js?efeb:628 [Vue warn]: Invalid prop: type check failed for prop "defaultActive". ...

  8. USB接口定义 | USB Type C接口定义 | 制作Type A转Type C充电-数据线

    1. USB接口定义 2. USB Type C接口定义 Type C接口母头(插座) Type C接口公头(插头) 引脚定义 参考:https://www.cnblogs.com/zhouhaoch ...

  9. Invalid prop: type check failed for prop "maxlength"

    Invalid prop: type check failed for prop "maxlength", element 框架时,因为想限制文本框的输入长度, maxlength ...

随机推荐

  1. android 29 ArrarAdapter数组适配器

    package com.sxt.day05_03; import android.os.Bundle; import android.app.Activity; import android.view ...

  2. Web classPath

    classpath,看名字,类路径,这样比如,对于java程序,就是告诉java程序哪里去找类.(java虚拟机都是通过类装载器的)想myeclipse中struts,spring,hibernate ...

  3. Java基础知识强化之集合框架笔记15:List集合的特点

    1. List集合的特点 List本身也是一个接口,如下: public interface List<E> extends Collection<E> (1)List是有序的 ...

  4. 剑指offer: 38 数字在排序数组中出现的次数

    题目描述 统计一个数字在排序数组中出现的次数.例如输入排序数组{1,2,3,3,3,3,4,5} 和数字3,输出4. 思路如下 1. 预估时间复杂度,最复杂情况是,顺序扫描,统计K出现的次数,时间复杂 ...

  5. 调试exynos4412—ARM嵌入式Linux—LEDS/GPIO驱动之一

    /** ****************************************************************************** * @author    暴走的小 ...

  6. JS快速排序和去重

    JS的快速排序和JS去重在面试的时候问的挺多的.下面是我对快速排序的理解,和快速排序,去重的代码. 1.什么是快速排序? 第一步: 快速排序就是去个中间值,把比中间值小的放在左边设为arrLeft,比 ...

  7. Jquery 判断滚动条到达顶部或底部

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. CSS Hack (各个浏览器兼容的问题)

    写css样式的时候,恐怕最头疼的就是各个浏览器下的兼容性问题,即css hack,明明感觉应该是对的,但是就是出不来效果,我根据平时所接触的,总结一下关于兼容 性的技巧,希望可以对大家有所帮助…… C ...

  9. super() extends() private总结demo

    public class TestService { private String name; public TestService(String name) { this.name=name; } ...

  10. My-sql #1045 - Access denied for user 'root'@'localhost' (using password: NO)

    当你重装数据库后出现这个问题的时候,不要着急,首先你要去你的确定你的数据库已经成功的把服务开启了, 然后确定你的密码和账户,IP都确认的情况下, 去寻找config.inc.php 这个文件,根据配置 ...