{"id":120643,"date":"2024-11-21T01:09:45","date_gmt":"2024-11-20T23:09:45","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/re2c-4-0"},"modified":"2024-11-21T01:09:45","modified_gmt":"2024-11-20T23:09:45","slug":"re2c-4-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/news\/re2c-4-0","title":{"rendered":"re2c 4.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex>      <noindex><\/p>\n<p>Op dinsdag 19 november werd de release gepresenteerd <a rel=\"nofollow\" href=\"http:\/\/re2c.org\">re2c<\/a> \u2013 generator van lexicale analyzers (ook bekend als de compiler die reguliere expressies omzet in code in de doeltaal). re2c is gespecialiseerd in het genereren van snelle en gemakkelijk in te bedden lexers. Het verschilt van de meer bekende tegenhanger flex door een flexibele interface, de generatie van geoptimaliseerde niet-tabelgebaseerde lexers en de ondersteuning van submatch-extractie op basis van deterministische eindige automaten met tags (<a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/2206.01398\">TDFA<\/a>). re2c wordt gebruikt in projecten waar de snelheid van de lexer belangrijk is, bijvoorbeeld in Ninja en PHP.<\/p>\n<p><\/noindex><\/noindex>  <noindex><\/p>\n<p>In de release 4.0 is de codegeneratie-subsystemen grondig herzien, wat de ondersteuning voor acht nieuwe talen mogelijk maakte (D, Haskell, Java, JavaScript, OCaml, Python, V, Zig) naast de al ondersteunde talen (C\/C++, Go, Rust), evenals een algemeen mechanisme voor het toevoegen van nieuwe talen via configuratiebestanden. De codegenerator is verantwoordelijk voor het vertalen van de reeds gebouwde en geoptimaliseerde eindige automaat naar code, wat betekent dat het zijn taak is om geschikte controle-instructies, datatypes, en het algemene programma-model voor de doeltaal te kiezen, enz. Eerder was al deze logica onderdeel van de broncode van re2c, en om deze te wijzigen of een nieuwe taal toe te voegen, moest de broncode worden gepatcht en moest re2c opnieuw worden samengesteld. Dergelijke patches werden niet in de hoofdrepository geaccepteerd zonder de implementatie van een standaardset voorbeelden en tests, wat het hele proces verder bemoeilijkte. Nu is deze logica verplaatst naar <a rel=\"nofollow\" href=\"http:\/\/re2c.org\/manual\/manual_c.html#syntax-files\">syntaxbestanden<\/a> \u2013 tekstconfiguratiebestanden die door de gebruiker kunnen worden verstrekt (standaard gebruikt re2c de standaardbestanden). De broncode van re2c is volledig vrij van details van specifieke talen en vertrouwt uitsluitend op het syntaxisbestand. De gebruiker kan bestaande syntaxisbestanden gedeeltelijk overschrijven of een nieuw bestand vanaf nul schrijven. Voor alle officieel ondersteunde talen zijn er <a rel=\"nofollow\" href=\"http:\/\/re2c.org\/manual\/manual.html\">complete documentatie met voorbeelden<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Trouwens, het idee van syntaxbestanden is ontstaan door <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/development\/16759268?cid=16762667\">een opmerking op LOR<\/a>, waarvoor dank <img decoding=\"async\" alt=\"re2c 4.0\" src=\"\/wp-content\/uploads\/2024\/11\/2baa1e4f47df390d8591518a6bacc0da.png\" style=\"display:block;margin: 0 auto;\" \/><a rel=\"nofollow\" style=\"text-decoration: none\" href=\"https:\/\/www.linux.org.ru\/people\/the_coder\/profile\">the_coder<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>In de release zijn veel andere wijzigingen opgenomen ter vereenvoudiging van de gebruikersinterface, verbetering van het werken met capturing groups, en er is een online omgeving toegevoegd voor het bewerken en compileren van voorbeelden: <a rel=\"nofollow\" href=\"http:\/\/re2c.org\/playground\">http:\/\/re2c.org\/playground<\/a>.<\/p>\n<p><\/noindex><\/p>\n<p>Bron: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/development\/17798640\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u043e \u0432\u0442\u043e\u0440\u043d\u0438\u043a, 19 \u043d\u043e\u044f\u0431\u0440\u044f, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 re2c &ndash; \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 (\u043e\u043d \u0436\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u0434 \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f). re2c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u0438 \u043b\u0435\u0433\u043a\u043e \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043b\u0435\u043a\u0441\u0435\u0440\u043e\u0432. \u041e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0431\u043e\u043b\u0435\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0430 flex \u0433\u0438\u0431\u043a\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c, \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u043b\u0435\u043a\u0441\u0435\u0440\u043e\u0432 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0437\u0430\u0445\u0432\u0430\u0442\u043e\u0432 (submatch extraction) \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u043e\u0432 \u0441 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":120644,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-120643","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u043e \u0432\u0442\u043e\u0440\u043d\u0438\u043a, 19 \u043d\u043e\u044f\u0431\u0440\u044f, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 re2c \u2013 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 (\u043e\u043d \u0436\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u0434 \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u043c \u044f\u0437\u044b\u043a\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/nl\/blog\/news\/re2c-4-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47re2c 4.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u043e \u0432\u0442\u043e\u0440\u043d\u0438\u043a, 19 \u043d\u043e\u044f\u0431\u0440\u044f, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 re2c \u2013 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 (\u043e\u043d \u0436\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u0434 \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u043c \u044f\u0437\u044b\u043a\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/news\/re2c-4-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-11-20T23:09:45+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-11-20T23:09:45+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47re2c 4.0 | ProHoster","description":"Dinsdag 19 november is de release van re2c gepresenteerd \u2013 een generator voor lexicale analyzers (ook wel een compiler van reguliere expressies naar code in de doeltaal).","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/news\/re2c-4-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47re2c 4.0 | ProHoster","og:description":"\u0412\u043e \u0432\u0442\u043e\u0440\u043d\u0438\u043a, 19 \u043d\u043e\u044f\u0431\u0440\u044f, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 re2c \u2013 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 (\u043e\u043d \u0436\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u0434 \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u043c \u044f\u0437\u044b\u043a\u0435.","og:url":"https:\/\/prohoster.info\/nl\/blog\/news\/re2c-4-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-11-20T23:09:45+00:00","article:modified_time":"2024-11-20T23:09:45+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"120643","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 08:11:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 08:11:19","updated":"2026-01-23 08:11:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/120643","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=120643"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/120643\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/120644"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=120643"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=120643"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=120643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}