{"id":659,"date":"2023-09-25T23:02:24","date_gmt":"2023-09-25T15:02:24","guid":{"rendered":"https:\/\/yunpeng.site\/?p=659"},"modified":"2024-01-14T19:13:24","modified_gmt":"2024-01-14T11:13:24","slug":"ase-2023","status":"publish","type":"post","link":"https:\/\/yunpeng.site\/index.php\/2023\/09\/25\/ase-2023\/","title":{"rendered":"ASE 2023"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"659\" class=\"elementor elementor-659\" data-elementor-settings=\"[]\">\n\t\t\t\t\t\t\t<div class=\"elementor-section-wrap\">\n\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d762bb3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d762bb3\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d2f2fcc\" data-id=\"d2f2fcc\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d5af63a elementor-widget elementor-widget-arter-project-banner\" data-id=\"d5af63a\" data-element_type=\"widget\" data-widget_type=\"arter-project-banner.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t<!-- container -->\n\t\t<div class=\"container-fluid\">\n\t\t\t<!-- row -->\n\t\t\t<div class=\"row\">\n\t\t\t  <!-- col -->\n\t\t\t  <div class=\"col-lg-12\">\n\n\t\t\t    <!-- call to action -->\n\t\t\t    <div class=\"art-a art-banner\" style=\"background-image: url(https:\/\/yunpeng.site\/wp-content\/uploads\/2021\/04\/mountains-4681355_1920.jpg)\">\n\t\t\t      <!-- banner overlay -->\n\t\t\t      <div class=\"art-banner-overlay\">\n\t\t\t        <!-- main title -->\n\t\t\t        <div class=\"art-banner-title text-center\">\n\t\t\t          \t\t\t          <!-- title -->\n\t\t\t          <h1 class=\"art-banner-title-h mb-15\">\n\t\t\t          <span >\n\t\t\t          \tGenerative Type Inference for Python\t\t\t          <\/span>\n\t\t\t          <\/h1>\n\t\t\t      \t  \t\t\t      \t  \t\t\t          <!-- suptitle -->\n\t\t\t          <div class=\"art-lg-text art-code mb-25\">\n\t\t\t          \t<span >\n\t\t\t\t          \tASE 2023\t\t\t\t        <\/span>\n\t\t\t          <\/div>\n\t\t\t          \t\t\t          \t\t\t        <\/div>\n\t\t\t        <!-- main title end -->\n\t\t\t      <\/div>\n\t\t\t      <!-- banner overlay end -->\n\t\t\t    <\/div>\n\t\t\t    <!-- banner end -->\n\n\t\t\t  <\/div>\n\t\t\t  <!-- col end -->\n\t\t\t<\/div>\n\t\t\t<!-- row end -->\n\t\t<\/div>\n\t\t<!-- container end -->\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b2acc0b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b2acc0b\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-112ac12\" data-id=\"112ac12\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1b37fd7 elementor-widget elementor-widget-arter-project-description\" data-id=\"1b37fd7\" data-element_type=\"widget\" data-widget_type=\"arter-project-description.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\n\t\t<!-- container -->\n\t\t<div class=\"container-fluid\">\n\n\t\t<!-- row -->\n\t\t<div class=\"row\">\n\n\t\t  \t\t  <!-- col -->\n\t\t  <div class=\"col-lg-12\">\n\n\t\t    <!-- section title -->\n\t\t    <div class=\"art-section-title\">\n\t\t      <!-- title frame -->\n\t\t      <div class=\"art-title-frame\">\n\t\t        <!-- title -->\n\t\t        <h4 class=\"art-title-h\">\n\t\t    \t<span >\n\t\t          \tPaper Information\t\t         <\/span>\n\t\t    \t<\/h4>\n\t\t      <\/div>\n\t\t      <!-- title frame end -->\n\t\t    <\/div>\n\t\t    <!-- section title end -->\n\n\t\t  <\/div>\n\t\t  <!-- col end -->\n\t\t  \n\t\t  \t\t  <!-- col -->\n\t\t  <div class=\"col-lg-12\">\n\t\t    <div class=\"art-a art-card art-fluid-card\">\n\t\t      \t\t      <div class=\"single-post-text\">\n\t\t      \t<div >\n\t\t          \t<p><strong>Paper Name<\/strong>: Generative Type Inference for Python<\/p><p><strong>Conference<\/strong>: <a href=\"https:\/\/conf.researchr.org\/home\/ase-2023\">38th IEEE\/ACM International Conference on Automated Software Engineering<\/a><\/p><p><strong>Authors<\/strong>: <span style=\"text-decoration: underline\"><em>Yun Peng<\/em><\/span>, Chaozheng Wang, Wenxuan Wang, Cuiyun Gao, Michael R. Lyu<\/p>\t\t        <\/div>\n\t\t      <\/div>\n\t\t\t  \t\t\t  \t\t    <\/div>\n\t\t  <\/div>\n\t\t  <!-- col end -->\n\t\t  \n\t\t  \t\t<\/div>\n\t\t<!-- row end -->\n\n\t\t<\/div>\n\t\t<!-- container end -->\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4a47908 elementor-widget elementor-widget-arter-project-description\" data-id=\"4a47908\" data-element_type=\"widget\" data-widget_type=\"arter-project-description.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\n\t\t<!-- container -->\n\t\t<div class=\"container-fluid\">\n\n\t\t<!-- row -->\n\t\t<div class=\"row\">\n\n\t\t  \t\t  <!-- col -->\n\t\t  <div class=\"col-lg-12\">\n\n\t\t    <!-- section title -->\n\t\t    <div class=\"art-section-title\">\n\t\t      <!-- title frame -->\n\t\t      <div class=\"art-title-frame\">\n\t\t        <!-- title -->\n\t\t        <h4 class=\"art-title-h\">\n\t\t    \t<span >\n\t\t          \tAbstract\t\t         <\/span>\n\t\t    \t<\/h4>\n\t\t      <\/div>\n\t\t      <!-- title frame end -->\n\t\t    <\/div>\n\t\t    <!-- section title end -->\n\n\t\t  <\/div>\n\t\t  <!-- col end -->\n\t\t  \n\t\t  \t\t  <!-- col -->\n\t\t  <div class=\"col-lg-12\">\n\t\t    <div class=\"art-a art-card art-fluid-card\">\n\t\t      \t\t      <div class=\"single-post-text\">\n\t\t      \t<div >\n\t\t          \t<p>Python is a popular dynamic programming language, evidenced by its ranking as the second most commonly used language on GitHub. However, its dynamic type system can lead to potential type errors, leading researchers to explore automatic type inference approaches for Python programs. Existing type inference approaches can be generally grouped into three categories, i.e., rule-based, supervised, and cloze-style approaches. The rule-based type inference approaches can ensure the accuracy of predicted variable types, but they suffer from low coverage problems caused by dynamic features and external calls. Supervised type inference approaches, while feature-agnostic and able to mitigate the low coverage problem, require large, high-quality annotated datasets and are limited to pre-defined types. As zero-shot approaches, the cloze-style approaches reformulate the type inference problem into a fill-in-the-blank problem by leveraging the general knowledge in powerful pre-trained code models. However, their performance is limited since they ignore the domain knowledge from static typing rules which reflect the inference logic. What is more, their predictions are not interpretable, hindering developers' understanding and verification of the results.<\/p><p>This paper introduces TypeGen, a few-shot generative type inference approach that incorporates static domain knowledge from static analysis. TypeGen creates chain-of-thought (COT) prompts by translating the type inference steps of static analysis into prompts based on the type dependency graphs (TDGs), enabling language models to learn from how static analysis infers types. By combining COT prompts with code slices and type hints, TypeGen constructs example prompts from human annotations. TypeGen only requires very few annotated examples to teach language models to generate similar COT prompts via in-context learning. Moreover, TypeGen enhances the interpretability of results through the use of the input-explanation-output strategy, which generates both explanations and type predictions in COT prompts. Experiments show that TypeGen outperforms the best baseline Type4Py by 10.0% for argument type prediction and 22.5% in return value type prediction in terms of top-1 Exact Match by using only five examples. Furthermore, TypeGen achieves substantial improvements of 27% to 84% compared to the zero-shot performance of large language models with parameter sizes ranging from 1.3B to 175B in terms of top-1 Exact Match.<\/p>\t\t        <\/div>\n\t\t      <\/div>\n\t\t\t  \t\t\t  \t\t    <\/div>\n\t\t  <\/div>\n\t\t  <!-- col end -->\n\t\t  \n\t\t  \t\t<\/div>\n\t\t<!-- row end -->\n\n\t\t<\/div>\n\t\t<!-- container end -->\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b42a499 elementor-widget elementor-widget-arter-project-description\" data-id=\"b42a499\" data-element_type=\"widget\" data-widget_type=\"arter-project-description.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\n\t\t<!-- container -->\n\t\t<div class=\"container-fluid\">\n\n\t\t<!-- row -->\n\t\t<div class=\"row\">\n\n\t\t  \t\t  <!-- col -->\n\t\t  <div class=\"col-lg-12\">\n\n\t\t    <!-- section title -->\n\t\t    <div class=\"art-section-title\">\n\t\t      <!-- title frame -->\n\t\t      <div class=\"art-title-frame\">\n\t\t        <!-- title -->\n\t\t        <h4 class=\"art-title-h\">\n\t\t    \t<span >\n\t\t          \tWorkflow of TypeGen\t\t         <\/span>\n\t\t    \t<\/h4>\n\t\t      <\/div>\n\t\t      <!-- title frame end -->\n\t\t    <\/div>\n\t\t    <!-- section title end -->\n\n\t\t  <\/div>\n\t\t  <!-- col end -->\n\t\t  \n\t\t  \n\t\t  \t\t<\/div>\n\t\t<!-- row end -->\n\n\t\t<\/div>\n\t\t<!-- container end -->\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e4d9256 elementor-widget elementor-widget-arter-project-image-featured\" data-id=\"e4d9256\" data-element_type=\"widget\" data-widget_type=\"arter-project-image-featured.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\n\t\t<!-- container -->\n\t\t<div class=\"container-fluid\">\n\n\t\t<!-- row -->\n\t\t<div class=\"row\">\n\n\t\t  <!-- col -->\n\t\t  <div class=\"col-lg-12\">\n\n\t\t    <!-- project cover -->\n\t\t    <div class=\"art-a art-project-cover\">\n\t\t      \t\t      <!-- item frame -->\n\t\t      <a data-no-swup href=\"https:\/\/i2.wp.com\/yunpeng.site\/wp-content\/uploads\/2023\/09\/ASE23_Overview.png?fit=1301%2C494&#038;ssl=1\" class=\"art-portfolio-item-frame art-horizontal\">\n\t\t        <!-- img -->\n\t\t        <img decoding=\"async\" src=\"https:\/\/i2.wp.com\/yunpeng.site\/wp-content\/uploads\/2023\/09\/ASE23_Overview.png?fit=1301%2C494&#038;ssl=1\" alt=\"Workflow of TypeGen\">\n\t\t        <!-- zoom icon -->\n\t\t        <span class=\"art-item-hover\"><i class=\"fas fa-expand\"><\/i><\/span>\n\t\t      <\/a>\n\t\t      <!-- item end -->\n\t\t  \t  \t\t    <\/div>\n\t\t    <!-- project cover nd -->\n\n\t\t  <\/div>\n\t\t  <!-- col end -->\n\n\t\t<\/div>\n\t\t<!-- row end -->\n\n\t\t<\/div>\n\t\t<!-- container end -->\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6b055c2 elementor-widget elementor-widget-arter-project-description\" data-id=\"6b055c2\" data-element_type=\"widget\" data-widget_type=\"arter-project-description.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\n\t\t<!-- container -->\n\t\t<div class=\"container-fluid\">\n\n\t\t<!-- row -->\n\t\t<div class=\"row\">\n\n\t\t  \t\t  <!-- col -->\n\t\t  <div class=\"col-lg-12\">\n\n\t\t    <!-- section title -->\n\t\t    <div class=\"art-section-title\">\n\t\t      <!-- title frame -->\n\t\t      <div class=\"art-title-frame\">\n\t\t        <!-- title -->\n\t\t        <h4 class=\"art-title-h\">\n\t\t    \t<span >\n\t\t          \tCode\t\t         <\/span>\n\t\t    \t<\/h4>\n\t\t      <\/div>\n\t\t      <!-- title frame end -->\n\t\t    <\/div>\n\t\t    <!-- section title end -->\n\n\t\t  <\/div>\n\t\t  <!-- col end -->\n\t\t  \n\t\t  \t\t  <!-- col -->\n\t\t  <div class=\"col-lg-12\">\n\t\t    <div class=\"art-a art-card art-fluid-card\">\n\t\t      \t\t      <div class=\"single-post-text\">\n\t\t      \t<div >\n\t\t          \t<p><a href=\"https:\/\/github.com\/JohnnyPeng18\/TypeGen\">https:\/\/github.com\/JohnnyPeng18\/TypeGen<\/a><\/p>\t\t        <\/div>\n\t\t      <\/div>\n\t\t\t  \t\t\t  \t\t      <!-- button -->\n\t\t      <div class=\"art-buttons-frame\">\n\t\t      \t<a href=\"https:\/\/github.com\/JohnnyPeng18\/TypeGen\" class=\"art-link art-color-link art-w-chevron\">\n\t\t      \t\t<span >\n\t\t\t          \tGo to GitHub\t\t\t        <\/span>\n\t\t      \t<\/a>\n\t\t      <\/div>\n\t\t  \t  \t\t    <\/div>\n\t\t  <\/div>\n\t\t  <!-- col end -->\n\t\t  \n\t\t  \t\t<\/div>\n\t\t<!-- row end -->\n\n\t\t<\/div>\n\t\t<!-- container end -->\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-39cae9c elementor-widget elementor-widget-arter-project-description\" data-id=\"39cae9c\" data-element_type=\"widget\" data-widget_type=\"arter-project-description.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\n\t\t<!-- container -->\n\t\t<div class=\"container-fluid\">\n\n\t\t<!-- row -->\n\t\t<div class=\"row\">\n\n\t\t  \t\t  <!-- col -->\n\t\t  <div class=\"col-lg-12\">\n\n\t\t    <!-- section title -->\n\t\t    <div class=\"art-section-title\">\n\t\t      <!-- title frame -->\n\t\t      <div class=\"art-title-frame\">\n\t\t        <!-- title -->\n\t\t        <h4 class=\"art-title-h\">\n\t\t    \t<span >\n\t\t          \tResources\t\t         <\/span>\n\t\t    \t<\/h4>\n\t\t      <\/div>\n\t\t      <!-- title frame end -->\n\t\t    <\/div>\n\t\t    <!-- section title end -->\n\n\t\t  <\/div>\n\t\t  <!-- col end -->\n\t\t  \n\t\t  \n\t\t  \t\t<\/div>\n\t\t<!-- row end -->\n\n\t\t<\/div>\n\t\t<!-- container end -->\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c93e841 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c93e841\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-a03c4b2\" data-id=\"a03c4b2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4c61a9c elementor-button-warning elementor-align-center elementor-widget elementor-widget-button\" data-id=\"4c61a9c\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a href=\"https:\/\/yunpeng.site\/files\/typegen.pdf\" class=\"elementor-button-link elementor-button elementor-size-sm\" role=\"button\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon elementor-align-icon-left\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"far fa-file-pdf\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t<span class=\"elementor-button-text\">PDF Download<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-0d790ec\" data-id=\"0d790ec\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fb22c2e elementor-button-warning elementor-align-center elementor-widget elementor-widget-button\" data-id=\"fb22c2e\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a href=\"https:\/\/yunpeng.site\/files\/ASE23_Slices.pdf\" class=\"elementor-button-link elementor-button elementor-size-sm\" role=\"button\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon elementor-align-icon-left\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fab fa-slideshare\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t<span class=\"elementor-button-text\">Slices Download<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1a1de03 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1a1de03\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d9cdb12\" data-id=\"d9cdb12\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8c357e9 elementor-widget elementor-widget-arter-contact-form\" data-id=\"8c357e9\" data-element_type=\"widget\" data-widget_type=\"arter-contact-form.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\n\t\t<!-- container -->\n\t\t<div class=\"container-fluid\">\n\n\t\t<!-- row -->\n\t\t<div class=\"row\">\n\n\t\t  \t\t  <!-- col -->\n\t\t  <div class=\"col-lg-12\">\n\n\t\t    <!-- section title -->\n\t\t    <div class=\"art-section-title\">\n\t\t      <!-- title frame -->\n\t\t      <div class=\"art-title-frame\">\n\t\t        <!-- title -->\n\t\t        <h4 class=\"art-title-h\">\n\t\t    \t<span >\n\t\t          \tContact\t\t         <\/span>\n\t\t    \t<\/h4>\n\t\t      <\/div>\n\t\t      <!-- title frame end -->\n\t\t    <\/div>\n\t\t    <!-- section title end -->\n\n\t\t  <\/div>\n\t\t  <!-- col end -->\n\t\t  \n\t\t  \t\t  <!-- col -->\n\t\t  <div class=\"col-lg-12\">\n\n\t\t  <!-- contact form frame -->\n\t\t  <div class=\"art-a art-card\">\n\t\t\t  <div role=\"form\" class=\"wpcf7\" id=\"wpcf7-f201-o1\" lang=\"en-US\" dir=\"ltr\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/index.php\/wp-json\/wp\/v2\/posts\/659#wpcf7-f201-o1\" method=\"post\" class=\"wpcf7-form init\" novalidate=\"novalidate\" data-status=\"init\">\n<div style=\"display: none;\">\n<input type=\"hidden\" name=\"_wpcf7\" value=\"201\" \/>\n<input type=\"hidden\" name=\"_wpcf7_version\" value=\"5.4\" \/>\n<input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/>\n<input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f201-o1\" \/>\n<input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/>\n<input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<\/div>\n<label> Your name\n    <span class=\"wpcf7-form-control-wrap your-name\"><input type=\"text\" name=\"your-name\" value=\"\" size=\"40\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" \/><\/span> <\/label>\n\n<label> Your email\n    <span class=\"wpcf7-form-control-wrap your-email\"><input type=\"email\" name=\"your-email\" value=\"\" size=\"40\" class=\"wpcf7-form-control wpcf7-text wpcf7-email wpcf7-validates-as-required wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" \/><\/span> <\/label>\n\n<label> Subject\n    <span class=\"wpcf7-form-control-wrap your-subject\"><input type=\"text\" name=\"your-subject\" value=\"\" size=\"40\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" \/><\/span> <\/label>\n\n<label> Your message (optional)\n    <span class=\"wpcf7-form-control-wrap your-message\"><textarea name=\"your-message\" cols=\"40\" rows=\"10\" class=\"wpcf7-form-control wpcf7-textarea\" aria-invalid=\"false\"><\/textarea><\/span> <\/label>\n\n<div class=\"anr_captcha_field\"><div id=\"anr_captcha_field_1\" class=\"anr_captcha_field_div\"><\/div><\/div><span class=\"wpcf7-form-control-wrap g-recaptcha-response\"><\/span> \n\n<input type=\"submit\" value=\"Submit\" class=\"wpcf7-form-control wpcf7-submit\" \/><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div><\/form><\/div>\t\t  <\/div>\n\t\t  <!-- contact form frame end -->\n\n\t\t  <\/div>\n\t\t  <!-- col end -->\n\t\t  \t\t\t\t\n\t\t<\/div>\n\t\t  <!-- row end -->\n\n\t\t<\/div>\n\t\t<!-- container end -->\t\t\t\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Generative Type Inference for Python ASE 2023 Paper Information Paper Name: Generative Type Inference for Python Conference: 38th IEEE\/ACM International&#8230; <\/p>\n<div class=\"art-el-more\"><a href=\"https:\/\/yunpeng.site\/index.php\/2023\/09\/25\/ase-2023\/\" class=\"art-link art-color-link art-w-chevron\">Read more<\/a><\/div>\n","protected":false},"author":1,"featured_media":653,"comment_status":"closed","ping_status":"open","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"spay_email":"","footnotes":""},"categories":[4],"tags":[7],"jetpack_featured_media_url":"https:\/\/i2.wp.com\/yunpeng.site\/wp-content\/uploads\/2023\/09\/ASE23_Overview.png?fit=1301%2C494&ssl=1","_links":{"self":[{"href":"https:\/\/yunpeng.site\/index.php\/wp-json\/wp\/v2\/posts\/659"}],"collection":[{"href":"https:\/\/yunpeng.site\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yunpeng.site\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yunpeng.site\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yunpeng.site\/index.php\/wp-json\/wp\/v2\/comments?post=659"}],"version-history":[{"count":7,"href":"https:\/\/yunpeng.site\/index.php\/wp-json\/wp\/v2\/posts\/659\/revisions"}],"predecessor-version":[{"id":704,"href":"https:\/\/yunpeng.site\/index.php\/wp-json\/wp\/v2\/posts\/659\/revisions\/704"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/yunpeng.site\/index.php\/wp-json\/wp\/v2\/media\/653"}],"wp:attachment":[{"href":"https:\/\/yunpeng.site\/index.php\/wp-json\/wp\/v2\/media?parent=659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yunpeng.site\/index.php\/wp-json\/wp\/v2\/categories?post=659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yunpeng.site\/index.php\/wp-json\/wp\/v2\/tags?post=659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}