C. A. R. Hoare

145 papers A* 7A 3B 11C 3Journal 70Unranked 40
YearRankTypeTitle / Venue / Authors
2023 J jnl
Frontiers Comput. Sci.
Yingxu Wang, Bernard Widrow, C. A. R. Hoare, Witold Pedrycz, Robert C. Berwick, Konstantinos N. Plataniotis, Imre J. Rudas, Jianhua Lu, Janusz Kacprzyk
2021 ch.
Theories of Programming
C. A. R. Hoare
2021 ch.
Theories of Programming
C. A. R. Hoare, Jayadev Misra
2011 B conf
CONCUR
C. A. R. Hoare, Akbar Hussain, Bernhard Möller, Peter W. O'Hearn, Rasmus Lerchedahl Petersen, Georg Struth
2010 conf
FoSER
Shuvendu K. Lahiri, Kapil Vaswani, C. A. R. Hoare
2009 B conf
CONCUR
C. A. R. Hoare, Bernhard Möller, Georg Struth, Ian Wehrman
2009 conf
RelMiCS
C. A. R. Hoare, Bernhard Möller, Georg Struth, Ian Wehrman
2009 J jnl
Inf. Process. Lett.
Ian Wehrman, C. A. R. Hoare, Peter W. O'Hearn
2009 J jnl
ACM Comput. Surv.
C. A. R. Hoare, Jayadev Misra
2009 J jnl
ACM Comput. Surv.
C. A. R. Hoare, Jayadev Misra, Gary T. Leavens, Natarajan Shankar
2009 J jnl
Commun. ACM
C. A. R. Hoare
2006 conf
UTP
Jifeng He, C. A. R. Hoare
2006 J jnl
Formal Aspects Comput.
Juan Bicarregui, C. A. R. Hoare, J. C. P. Woodcock
2005 B conf
CONCUR
Roberto Bruni, Michael J. Butler, Carla Ferreira, C. A. R. Hoare, Hernán C. Melgratti, Ugo Montanari
2005 C conf
ICTAC
Jifeng He, C. A. R. Hoare
2005 B conf
VMCAI
C. A. R. Hoare
2004 conf
25 Years Communicating Sequential Processes
Michael J. Butler, C. A. R. Hoare, Carla Ferreira
2004 conf
25 Years Communicating Sequential Processes
C. A. R. Hoare
2004 A* conf
CAV
Cédric Fournet, C. A. R. Hoare, Sriram K. Rajamani, Jakob Rehof
2004 conf
Essays in Memory of Ole-Johan Dahl
C. A. R. Hoare
2003 J jnl
IEEE Ann. Hist. Comput.
C. A. R. Hoare
2003 conf
JMLC
C. A. R. Hoare
2003 B conf
CC
C. A. R. Hoare
2003 conf
Ershov Memorial Conference
C. A. R. Hoare
2003 conf
Euro-Par
C. A. R. Hoare
2003 J jnl
J. ACM
C. A. R. Hoare
2002 ch.
Software Pioneers
C. A. R. Hoare
2002 B conf
COMPSAC
C. A. R. Hoare
2002 conf
Soft-Ware
C. A. R. Hoare
2002 ch.
Software Pioneers
C. A. R. Hoare
2002 J jnl
Commun. ACM
Robert S. Boyer, W. H. J. Feijen, David Gries, C. A. R. Hoare, Jayadev Misra, J. Moore, H. Richards
2002 ch.
Software Pioneers
C. A. R. Hoare
2002 conf
10th Anniversary Colloquium of UNU/IIST
C. A. R. Hoare
2001 conf
TOOLS (38)
C. A. R. Hoare
2001 J jnl
Inf. Process. Lett.
C. A. R. Hoare
2000 J jnl
High. Order Symb. Comput.
C. A. R. Hoare
2000 conf
Proof, Language, and Interaction
C. A. R. Hoare, Jifeng He, Augusto Sampaio
2000 B conf
IFM
C. A. R. Hoare
2000 C conf
ICFEM
C. A. R. Hoare
2000 C conf
APSEC
Jifeng He, C. A. R. Hoare
1999 A* conf
PLDI
Simon L. Peyton Jones, Alastair Reid, Fergus Henderson, C. A. R. Hoare, Simon Marlow
1999 A conf
ECOOP
C. A. R. Hoare, Jifeng He
1999 B conf
ICLP
Silvija Seres, J. Michael Spivey, C. A. R. Hoare
1999 J jnl
Inf. Sci.
Jifeng He, C. A. R. Hoare
1999 conf
Correct System Design
C. A. R. Hoare
1999 conf
World Congress on Formal Methods
C. A. R. Hoare
1998 conf
RelMiCS
Jifeng He, C. A. R. Hoare
1997 conf
Euro-Par
C. A. R. Hoare, Jifeng He
1996 conf
FME
C. A. R. Hoare
1996 conf
NATO ASI DPD
C. A. R. Hoare
1996 A* conf
ICSE
C. A. R. Hoare
1996 J jnl
Microprocess. Microprogramming
C. A. R. Hoare
1996 J jnl
ACM Comput. Surv.
C. A. R. Hoare
1995 J jnl
Inf. Process. Lett.
Burghard von Karger, C. A. R. Hoare
1995 conf
COMPASS/ADT
C. A. R. Hoare
1994 J jnl
J. Log. Comput.
C. A. R. Hoare
1994 conf
Programming Languages and System Architectures
C. A. R. Hoare, Ian Page
1994 conf
FTRTFT
Jifeng He, C. A. R. Hoare, Martin Fränzle, Markus Müller-Olm, Ernst-Rüdiger Olderog, Michael Schenke, Michael R. Hansen, Anders P. Ravn, Hans Rischel
1993 conf
SIGSOFT FSE
C. A. R. Hoare
1993 ch.
Program Verification
C. A. R. Hoare
1993 J jnl
Inf. Process. Lett.
Jifeng He, C. A. R. Hoare
1993 ch.
Program Verification
C. A. R. Hoare
1993 J jnl
Acta Informatica
C. A. R. Hoare, Jifeng He, Augusto Sampaio
1992 J jnl
Formal Methods Syst. Des.
Zhou Chaochen, C. A. R. Hoare
1992 conf
NATO ASI PDC
C. A. R. Hoare
1992 conf
FGCS
C. A. R. Hoare
1991 J jnl
Inf. Process. Lett.
Zhou Chaochen, C. A. R. Hoare, Anders P. Ravn
1991 J jnl
Theor. Comput. Sci.
C. A. R. Hoare
1991 J jnl
Math. Struct. Comput. Sci.
C. E. Martin, C. A. R. Hoare, Jifeng He
1991 J jnl
Concurr. Pract. Exp.
C. A. R. Hoare
1990 conf
PARBASE / Architectures
C. A. R. Hoare
1990 J jnl
Inf. Process. Lett.
C. A. R. Hoare
1990 B conf
CONCUR
C. A. R. Hoare
1990 ed.
VDM Europe
Dines Bjørner, C. A. R. Hoare, Hans Langmaack
1989 B conf
Mathematical Foundations of Programming Semantics
Jifeng He, C. A. R. Hoare
1989 conf
TAPSOFT, Vol.1
C. A. R. Hoare
1988 A* conf
LICS
C. A. R. Hoare, Michael J. C. Gordon
1988 J jnl
Theor. Comput. Sci.
A. W. Roscoe, C. A. R. Hoare
1987 J jnl
Distributed Comput.
Jifeng He, C. A. R. Hoare
1987 J jnl
Computer
C. A. R. Hoare
1987 J jnl
Commun. ACM
C. A. R. Hoare, Ian J. Hayes, Jifeng He, Carroll Morgan, A. W. Roscoe, Jeff W. Sanders, Ib Holm Sørensen, J. Michael Spivey, Bernard Sufrin
1987 J jnl
Inf. Process. Lett.
C. A. R. Hoare, Jifeng He, Jeff W. Sanders
1987 J jnl
Inf. Process. Lett.
C. A. R. Hoare, Jifeng He
1986 A conf
ESOP
Jifeng He, C. A. R. Hoare, Jeff W. Sanders
1986 J jnl
Acta Informatica
Ernst-Rüdiger Olderog, C. A. R. Hoare
1985 J jnl
Math. Log. Q.
C. A. R. Hoare
1985 book
Communicating Sequential Processes
C. A. R. Hoare
1985 conf
Data Types and Persistence (Appin), Informal Proceedings
K. T. Sridhar, C. A. R. Hoare
1985 conf
FSTTCS
C. A. R. Hoare
1984 J jnl
J. ACM
Stephen D. Brookes, C. A. R. Hoare, A. W. Roscoe
1984 J jnl
IEEE Softw.
C. A. R. Hoare
1984 conf
FGCS
C. A. R. Hoare, A. W. Roscoe
1983 J jnl
Theor. Comput. Sci.
Eric C. R. Hehner, C. A. R. Hoare
1983 J jnl
Commun. ACM
C. A. R. Hoare
1983 J jnl
Commun. ACM
C. A. R. Hoare
1983 conf
The Analysis of Concurrent Systems
Carroll Morgan, C. A. R. Hoare
1983 A* conf
ICALP
Ernst-Rüdiger Olderog, C. A. R. Hoare
1983 conf
The Analysis of Concurrent Systems
C. A. R. Hoare
1983 conf
The Analysis of Concurrent Systems
C. A. R. Hoare
1981 J jnl
Sci. Comput. Program.
C. A. R. Hoare
1981 conf
Pascal - The Language and its Implementation
Jim Welsh, W. J. Sneeringer, C. A. R. Hoare
1981 A conf
ICDCS
Zhou Chao Chen, C. A. R. Hoare
1981 J jnl
Commun. ACM
C. A. R. Hoare
1980 ch.
On the Construction of Programs
C. A. R. Hoare
1980 A* conf
ICALP
Richard Kennaway, C. A. R. Hoare
1979 J jnl
J. Comput. Syst. Sci.
Nissim Francez, C. A. R. Hoare, Daniel J. Lehmann, Willem P. de Roever
1978 J jnl
Commun. ACM
C. A. R. Hoare
1978 B conf
MFCS
Nissim Francez, C. A. R. Hoare, Willem P. de Roever
1978 A* conf
ICSE
C. A. R. Hoare
1978 J jnl
J. ACM
C. A. R. Hoare
1977 J jnl
Softw. Pract. Exp.
Jim Welsh, W. J. Sneeringer, C. A. R. Hoare
1977 J jnl
Comput. J.
A. M. Macnaghten, C. A. R. Hoare
1976 J jnl
Comput. Lang.
C. A. R. Hoare
1976 J jnl
Softw. Pract. Exp.
W. H. Kaubisch, Ronald H. Perrott, C. A. R. Hoare
1975 conf
Reliable Software
C. A. R. Hoare
1975 J jnl
Commun. ACM
H. C. Johnston, C. A. R. Hoare
1975 conf
Language Hierarchies and Interfaces
C. A. R. Hoare
1975 conf
Language Hierarchies and Interfaces
C. A. R. Hoare
1975 J jnl
Int. J. Parallel Program.
C. A. R. Hoare
1975 conf
Language Hierarchies and Interfaces
C. A. R. Hoare
1974 J jnl
Acta Informatica
C. A. R. Hoare, Peter E. Lauer
1974 J jnl
Commun. ACM
C. A. R. Hoare
1974 J jnl
Inf. Process. Lett.
C. A. R. Hoare
1973 J jnl
Inf. Process. Lett.
C. A. R. Hoare
1973 J jnl
Comput. J.
C. A. R. Hoare
1973 J jnl
Acta Informatica
C. A. R. Hoare, Niklaus Wirth
1972 conf
International Sympoisum on Theoretical Programming
C. A. R. Hoare
1972 J jnl
ACM Comput. Surv.
C. A. R. Hoare, Donald C. S. Allison
1972 J jnl
Acta Informatica
Maurice Clint, C. A. R. Hoare
1972 J jnl
Acta Informatica
C. A. R. Hoare
1972 J jnl
Comput. J.
C. A. R. Hoare
1971 ch.
Symposium on Semantics of Algorithmic Languages
C. A. R. Hoare
1971 J jnl
Commun. ACM
C. A. R. Hoare
1971 J jnl
Comput. J.
M. Foley, C. A. R. Hoare
1969 J jnl
Commun. ACM
C. A. R. Hoare
1968 conf
IFIP Congress (1)
C. A. R. Hoare
1966 J jnl
Commun. ACM
Niklaus Wirth, C. A. R. Hoare
1964 J jnl
Comput. J.
C. A. R. Hoare
1963 J jnl
Comput. J.
C. A. R. Hoare
1963 J jnl
Comput. J.
C. A. R. Hoare
1962 J jnl
Comput. J.
C. A. R. Hoare
1962 J jnl
Comput. J.
C. A. R. Hoare
1961 J jnl
Commun. ACM
C. A. R. Hoare
1961 J jnl
Commun. ACM
C. A. R. Hoare
1961 J jnl
Commun. ACM
C. A. R. Hoare
docs/apk-feature-schema.md
← Index docs/apk-feature-schema.md markdown
# APK Feature Analysis — ClickHouse Schema

All tables follow the `ReplacingMergeTree()` pattern (no version column — latest
insert wins on deduplication).

**Companion schema:** `docs/apk-code-schema.md` (code-analysis tables)

---

## Table overview

| # | Table | Engine | Key |
|---|-------|--------|-----|
| 1 | `redb_apk_features` | ReplacingMergeTree | `sha256` |
| 2 | `redb_apk_components` | ReplacingMergeTree | `(sha256, component_type, class_name)` |
| 3 | `redb_apk_manifest` | ReplacingMergeTree | `sha256` |
| 4 | `redb_apk_permissions` | ReplacingMergeTree | `(sha256, permission_name)` |
| 5 | `redb_apk_signature` | ReplacingMergeTree | `sha256` |
| 6 | `redb_apk_certificates` | ReplacingMergeTree | `(sha256, certificate_thumbprint)` |
| 7 | `redb_apk_dex` | ReplacingMergeTree | `(sha256, dex_sha256)` |
| 8 | `redb_apk_dex_api_usage` | ReplacingMergeTree | `(sha256, dex_sha256, api_category)` |
| 9 | `redb_apk_resources` | ReplacingMergeTree | `(sha256, resource_path)` |
| 10 | `redb_apk_native_libs` | ReplacingMergeTree | `(sha256, lib_abi, lib_filename)` |
| 11 | `redb_apk_inconsistency_tests` | ReplacingMergeTree | `sha256` |

---

## Table 1: `redb_apk_features`

Core metadata — one row per APK.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_features (
    sha256              FixedString(64),
    package_name        Nullable(String),
    app_name            Nullable(String),
    version_code        Nullable(UInt32),
    version_name        Nullable(String),
    min_sdk_version     Nullable(UInt16),
    target_sdk_version  Nullable(UInt16),
    compile_sdk_version Nullable(UInt16),
    main_activity       Nullable(String),
    is_debuggable       UInt8,
    allow_backup        UInt8,
    uses_cleartext_traffic UInt8,
    supported_abis      Array(String),
    dex_count           UInt16,
    total_dex_size      UInt64,
    total_file_count    UInt32,
    has_native_code     UInt8,
    has_assets          UInt8,
    uses_libraries      Array(String),
    earliest_content_modification Nullable(String),
    latest_content_modification   Nullable(String),
    contains_embedded_apk UInt8,
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY sha256;
```

## Table 2: `redb_apk_components`

Manifest components — one row per component.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_components (
    sha256              FixedString(64),
    component_type      LowCardinality(String),   -- 'activity', 'service', 'receiver', 'provider'
    class_name          String,
    is_exported         UInt8,
    intent_actions      Array(String),
    intent_categories   Array(String),
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, component_type, class_name);
```

## Table 3: `redb_apk_manifest`

Manifest summary — one row per APK.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_manifest (
    sha256              FixedString(64),
    activity_count      UInt16,
    service_count       UInt16,
    receiver_count      UInt16,
    provider_count      UInt16,
    intent_filters_by_action   Array(String),
    intent_filters_by_category Array(String),
    uses_features       Array(String),
    manifest_xml        Nullable(String),
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY sha256;
```

## Table 4: `redb_apk_permissions`

Permissions — one row per permission per APK.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_permissions (
    sha256              FixedString(64),
    permission_name     String,
    protection_level    LowCardinality(String),
    is_custom           UInt8,
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, permission_name);
```

## Table 5: `redb_apk_signature`

Signing info — one row per APK. The `apk_signer_*` fields identify the actual
signer certificate using V3→V2→V1 priority (V2/V3: `certificates[0]` per spec;
V1: `SignerInfo.issuerAndSerialNumber` matching). Prefixed with `apk_` to
distinguish from PE/Mach-O signer fields in cross-format queries.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_signature (
    sha256              FixedString(64),
    is_signed           UInt8,
    signature_scheme_versions Array(UInt8),
    number_of_certificates UInt8,
    apk_signer_subject  Nullable(String),
    apk_signer_issuer   Nullable(String),
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY sha256;
```

## Table 6: `redb_apk_certificates`

Certificate details — one row per certificate per APK. The
`certificate_source_scheme` column tracks which signing scheme(s) the
certificate was found in (`'v1'`, `'v2'`, `'v3'`, or `'v1,v2'` when the same
certificate appears across multiple schemes).

```sql
CREATE TABLE IF NOT EXISTS redb_apk_certificates (
    sha256                    FixedString(64),
    certificate_subject       String,
    certificate_issuer        String,
    certificate_serial_number String,
    certificate_valid_from    DateTime64(3, 'UTC'),
    certificate_valid_to      DateTime64(3, 'UTC'),
    certificate_thumbprint    FixedString(40),
    certificate_algorithm     LowCardinality(String),
    key_size                  Nullable(UInt16),
    is_self_signed            UInt8,
    certificate_source_scheme LowCardinality(String),
    analysis_date             DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, certificate_thumbprint);
```

## Table 7: `redb_apk_dex`

DEX file analysis — one row per DEX file.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_dex (
    sha256              FixedString(64),
    dex_sha256          FixedString(64),
    dex_filename        String,
    dex_tlsh            Nullable(String),
    dex_class_count     UInt32,
    dex_method_count    UInt32,
    dex_string_count    UInt32,
    dex_top_packages    String,                    -- JSON
    dex_obfuscation_indicators String,             -- JSON
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, dex_sha256);
```

## Table 8: `redb_apk_dex_api_usage`

DEX API usage — one row per category per DEX.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_dex_api_usage (
    sha256              FixedString(64),
    dex_sha256          FixedString(64),
    api_category        LowCardinality(String),
    api_calls           Array(String),
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, dex_sha256, api_category);
```

## Table 9: `redb_apk_resources`

Resource inventory — one row per resource.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_resources (
    sha256              FixedString(64),
    resource_path       String,
    resource_size       UInt64,
    resource_sha256     FixedString(64),
    resource_magika     LowCardinality(String),
    resource_entropy             Float32,
    is_suspicious       UInt8,
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, resource_path);
```

## Table 10: `redb_apk_native_libs`

Native libraries — one row per `.so` file.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_native_libs (
    sha256              FixedString(64),
    lib_abi             LowCardinality(String),
    lib_filename        String,
    lib_size            UInt64,
    lib_sha256          FixedString(64),
    lib_is_known_packer UInt8,
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, lib_abi, lib_filename);
```

## Table 11: `redb_apk_inconsistency_tests`

Inconsistency tests — one row per APK.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_inconsistency_tests (
    sha256              FixedString(64),
    test_zip_bomb                    Nullable(UInt8),
    test_zip_duplicate_entries       Nullable(UInt8),
    test_zip_path_traversal          Nullable(UInt8),
    test_zip_suspicious_timestamps   Nullable(UInt8),
    test_hidden_dex_files            Nullable(UInt8),
    test_manifest_component_mismatch Nullable(UInt8),
    test_debuggable_release          Nullable(UInt8),
    test_emulator_detection_strings  Nullable(UInt8),
    test_debugger_detection          Nullable(UInt8),
    test_root_detection              Nullable(UInt8),
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY sha256;
```